<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/open_file_item"
+ android:title="@string/filedetails_open"
+ android:icon="@android:drawable/ic_menu_edit"
+ />
+
+ <item android:id="@+id/download_file_item"
+ android:title="@string/filedetails_download"
+ />
+
+ <item android:id="@+id/cancel_download_item"
+ android:title="@string/common_cancel_download"
+ android:icon="@android:drawable/ic_menu_close_clear_cancel"
+ />
+
+ <item android:id="@+id/cancel_upload_item"
+ android:title="@string/common_cancel_upload"
+ android:icon="@android:drawable/ic_menu_close_clear_cancel"
+ />
+
<item android:id="@+id/rename_file_item"
android:title="@string/common_rename"
android:icon="@android:drawable/ic_menu_set_as"
<string name="common_yes">Yes</string>
<string name="common_no">No</string>
<string name="common_ok">OK</string>
- <string name="common_cancel">Cancel</string>
+ <string name="common_cancel_download">Cancel download</string>
+ <string name="common_cancel_upload">Cancel upload</string>
+ <string name="common_cancel">Cancel</string>
<string name="common_save_exit">Save & Exit</string>
<string name="common_exit">Leave ownCloud</string>
<string name="common_error">Error</string>
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);
+ }
+ }
}