From: David A. Velasco Date: Tue, 6 Nov 2012 14:13:27 +0000 (+0100) Subject: New items in the context menu for files (not folders), depending upon its state X-Git-Tag: oc-android-1.4.3~88^2~12 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/500cbf9cea65663d7cc6e4a1ca39bec5af5bdd57 New items in the context menu for files (not folders), depending upon its state --- diff --git a/res/menu/file_context_menu.xml b/res/menu/file_context_menu.xml index 8014c149..622c483d 100644 --- a/res/menu/file_context_menu.xml +++ b/res/menu/file_context_menu.xml @@ -1,6 +1,25 @@ + + + + + + + + Yes No OK - Cancel + Cancel download + Cancel upload + Cancel Save & Exit Leave ownCloud Error diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 5187a84f..a5e59d46 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -154,7 +154,38 @@ public class OCFileListFragment extends FragmentListView implements EditNameDial super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.file_context_menu, menu); - AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; + AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; + OCFile targetFile = (OCFile) mAdapter.getItem(info.position); + MenuItem item = null; + int[] ids = null; + if (targetFile.isDirectory()) { + int[] theIds = {R.id.open_file_item, R.id.download_file_item, R.id.cancel_download_item, R.id.cancel_upload_item}; + ids = theIds; + + } else if ( mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile)) { + int[] theIds = {R.id.open_file_item, R.id.download_file_item, R.id.cancel_upload_item}; + ids = theIds; + + } else if ( mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile)) { + int[] theIds = {R.id.open_file_item, R.id.download_file_item, R.id.cancel_download_item}; + ids = theIds; + + } else if ( targetFile.isDown()) { + int[] theIds = {R.id.cancel_download_item, R.id.cancel_upload_item}; + ids = theIds; + + } else { + int[] theIds = {R.id.open_file_item, R.id.cancel_download_item, R.id.cancel_upload_item}; + ids = theIds; + } + + for (int i=0; i < ids.length; i++) { + item = menu.findItem(ids[i]); + if (item != null) { + item.setVisible(false); + item.setEnabled(false); + } + } }