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);
});
}
}