«использует непроверенные или небезопасные операции» Я получил эту ошибку во время компиляции. Кто-нибудь может помочь мне решить эту проблему? - PullRequest
0 голосов
/ 28 апреля 2020
public class Fragment_category_music_favorite extends Fragment {
    ListView mListViewForSong;
    String[] items;

    public Fragment_category_music_favorite() {
        // Required empty public constructor
    }

    public static Fragment_category_music_favorite newInstance(String param1, String param2) {
        Fragment_category_music_favorite fragment = new Fragment_category_music_favorite();
        Bundle args = new Bundle();

        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {

        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View mView = inflater.inflate(R.layout.fragment_category_music_favorite, container, false);

        mListViewForSong = mView.findViewById(R.id.mySongList);

        isReadStoragePermissionGranted();//read write permission

        return mView;
    }

    @Override
    public void onStart() {
        super.onStart();
    }

    public void isReadStoragePermissionGranted() {
        Dexter.withActivity(getActivity())
                .withPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
                .withListener(new PermissionListener() {
                    @Override
                    public void onPermissionGranted(PermissionGrantedResponse response) {
                        display();
                    }

                    @Override
                    public void onPermissionDenied(PermissionDeniedResponse response) {
                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
                        token.cancelPermissionRequest();
                    }
                }).check();
    }

    public ArrayList findSong(File file) {

        ArrayList arrayList = new ArrayList<String>();
        File[] files = file.listFiles();
        for (File singleFile : files) {
            if (singleFile.isDirectory() && !singleFile.isHidden()) {
                arrayList.addAll(findSong(singleFile));
            } else {
                if (singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav")) {
                    arrayList.add(singleFile);
                }
            }
        }
        return arrayList;
    }

    void display() {

        final ArrayList<File> mySongs = findSong(Environment.getExternalStorageDirectory());

        items = new String[mySongs.size()];

        for (int i = 0; i < mySongs.size(); i++) {
            items[i] = mySongs.get(i).getName().replace(".mp3", "").replace(".wav", "");
        }

        ArrayAdapter<String> myAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, items);

        mListViewForSong.setAdapter(myAdapter);
        mListViewForSong.setOnItemClickListener((parent, view, position, id) -> {

            String songName = mListViewForSong.getItemAtPosition(position).toString();


            FragmentManager manager = getActivity().getSupportFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
            Fragment_category_music_player musicPlayer1 = new Fragment_category_music_player();

            Bundle bundle = new Bundle();

            bundle.putSerializable("songs", mySongs);
            bundle.putString("songName", songName);
            bundle.putInt("pos", position);
            musicPlayer1.setArguments(bundle);

            transaction.replace(R.id.container, musicPlayer1);
            transaction.commit();

            //  Log.d("mad", "display: bundle " + bundle);

        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...