public void deleteMedia(int position) { final MediaWrapper media = mVideoAdapter.getItem(position); final String path = media.getUri().getPath(); new Thread( new Runnable() { public void run() { Util.recursiveDelete(VLCApplication.getAppContext(), new File(path)); } }) .start(); mMediaLibrary.getMediaItems().remove(media); mVideoAdapter.remove(media); PlaybackServiceClient.getMediaLocations( getActivity(), new PlaybackServiceClient.ResultCallback<List<String>>() { @Override public void onResult(PlaybackServiceClient client, List<String> result) { if (result != null && result.contains(media.getLocation())) client.removeLocation(media.getLocation()); } @Override public void onError(PlaybackServiceClient client) {} }); }
private boolean handleContextItemSelected(MenuItem menu, int position) { if (position >= mVideoAdapter.getCount()) return false; MediaWrapper media = mVideoAdapter.getItem(position); if (media == null) return false; switch (menu.getItemId()) { case R.id.video_list_play_from_start: playVideo(media, true); return true; case R.id.video_list_play_audio: playAudio(media); return true; case R.id.video_list_info: Activity activity = getActivity(); if (activity instanceof MainActivity) ((MainActivity) activity) .showSecondaryFragment(SecondaryActivity.MEDIA_INFO, media.getLocation()); else { Intent i = new Intent(activity, SecondaryActivity.class); i.putExtra("fragment", "mediaInfo"); i.putExtra("param", media.getLocation()); startActivity(i); } return true; case R.id.video_list_delete: Snackbar.make(getView(), getString(R.string.file_deleted), Snackbar.LENGTH_LONG) .setAction(android.R.string.cancel, mCancelDeleteMediaListener) .show(); Message msg = mDeleteHandler.obtainMessage(DELETE_MEDIA, position, 0); mDeleteHandler.sendMessageDelayed(msg, DELETE_DURATION); return true; } return false; }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { MediaWrapper media = mVideoAdapter.getItem(position); if (media == null) return; if (media instanceof MediaGroup) { MainActivity activity = (MainActivity) getActivity(); activity.showSecondaryFragment(SecondaryActivity.VIDEO_GROUP_LIST, media.getTitle()); } else playVideo(media, false); }
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // Do not show the menu of media group. AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; MediaWrapper media = mVideoAdapter.getItem(info.position); if (media == null || media instanceof MediaGroup) return; MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.video_list, menu); setContextMenuItems(menu, media); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB) public void onContextPopupMenu(View anchor, final int position) { if (!AndroidUtil.isHoneycombOrLater()) { // Call the "classic" context menu anchor.performLongClick(); return; } PopupMenu popupMenu = new PopupMenu(getActivity(), anchor); popupMenu.getMenuInflater().inflate(R.menu.video_list, popupMenu.getMenu()); MediaWrapper media = mVideoAdapter.getItem(position); if (media == null) return; setContextMenuItems(popupMenu.getMenu(), media); popupMenu.setOnMenuItemClickListener( new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { return handleContextItemSelected(item, position); } }); popupMenu.show(); }