@Override public boolean onContextItemSelected(MenuItem item) { if (!getUserVisibleHint()) return super.onContextItemSelected(item); AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); if (menuInfo == null) // getMenuInfo can be NULL return super.onContextItemSelected(item); int startPosition; List<String> medias; int id = item.getItemId(); boolean useAllItems = (id == R.id.audio_list_browser_play_all || id == R.id.audio_list_browser_append_all); boolean append = (id == R.id.audio_list_browser_append || id == R.id.audio_list_browser_append_all); if (id == R.id.audio_list_browser_delete) { final Media media = mSongsAdapter.getItem(menuInfo.position); AlertDialog dialog = CommonDialogs.deleteMedia( getActivity(), media.getLocation(), new VlcRunnable(media) { @Override public void run(Object o) { mMediaLibrary.getMediaItems().remove(media); updateList(); } }); dialog.show(); return true; } if (id == R.id.audio_list_browser_set_song) { AudioUtil.setRingtone(mSongsAdapter.getItem(menuInfo.position), getActivity()); return true; } if (useAllItems) { startPosition = menuInfo.position; medias = mSongsAdapter.getLocations(); } else { startPosition = 0; medias = mSongsAdapter.getLocation(menuInfo.position); } if (append) mAudioController.append(medias); else { mAudioController.load(medias, startPosition); AudioPlayerFragment.start(getActivity()); } return super.onContextItemSelected(item); }
@Override public void onListItemClick(ListView l, View v, int position, long id) { mAudioController.load(mSongsAdapter.getLocations(), position); AudioPlayerFragment.start(getActivity()); super.onListItemClick(l, v, position, id); }