mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 17:46:37 +03:00
Refactored menu filtering in a single class FileMenuFilter
This commit is contained in:
parent
7906a9622c
commit
2f2570bbc5
5 changed files with 303 additions and 183 deletions
254
src/com/owncloud/android/files/FileMenuFilter.java
Normal file
254
src/com/owncloud/android/files/FileMenuFilter.java
Normal file
|
@ -0,0 +1,254 @@
|
||||||
|
package com.owncloud.android.files;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import android.accounts.Account;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
|
||||||
|
import com.actionbarsherlock.app.SherlockFragment;
|
||||||
|
import com.owncloud.android.R;
|
||||||
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
|
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
||||||
|
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
||||||
|
import com.owncloud.android.ui.activity.ComponentsGetter;
|
||||||
|
import com.owncloud.android.ui.fragment.FileDetailFragment;
|
||||||
|
import com.owncloud.android.ui.fragment.OCFileListFragment;
|
||||||
|
import com.owncloud.android.ui.preview.PreviewImageFragment;
|
||||||
|
import com.owncloud.android.ui.preview.PreviewMediaFragment;
|
||||||
|
|
||||||
|
public class FileMenuFilter {
|
||||||
|
|
||||||
|
private OCFile mFile;
|
||||||
|
private ComponentsGetter mComponentsGetter;
|
||||||
|
private Account mAccount;
|
||||||
|
private Context mContext;
|
||||||
|
private SherlockFragment mFragment;
|
||||||
|
|
||||||
|
public void setFile(OCFile targetFile) {
|
||||||
|
mFile = targetFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccount(Account account) {
|
||||||
|
mAccount = account;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComponentGetter(ComponentsGetter cg) {
|
||||||
|
mComponentsGetter = cg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContext(Context context) {
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFragment(SherlockFragment fragment) {
|
||||||
|
mFragment = fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void filter(Menu menu) {
|
||||||
|
List<Integer> toShow = new ArrayList<Integer>();
|
||||||
|
List<Integer> toDisable = new ArrayList<Integer>();
|
||||||
|
List<Integer> toHide = new ArrayList<Integer>();
|
||||||
|
|
||||||
|
filter(toShow, toDisable, toHide);
|
||||||
|
|
||||||
|
MenuItem item = null;
|
||||||
|
for (int i : toShow) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(true);
|
||||||
|
item.setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i : toDisable) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(true);
|
||||||
|
item.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i : toHide) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(false);
|
||||||
|
item.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ActionBarSherlock...
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void filter(com.actionbarsherlock.view.Menu menu) {
|
||||||
|
|
||||||
|
List<Integer> toShow = new ArrayList<Integer>();
|
||||||
|
List<Integer> toDisable = new ArrayList<Integer>();
|
||||||
|
List<Integer> toHide = new ArrayList<Integer>();
|
||||||
|
|
||||||
|
filter(toShow, toDisable, toHide);
|
||||||
|
|
||||||
|
com.actionbarsherlock.view.MenuItem item = null;
|
||||||
|
for (int i : toShow) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(true);
|
||||||
|
item.setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i : toDisable) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(true);
|
||||||
|
item.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i : toHide) {
|
||||||
|
item = menu.findItem(i);
|
||||||
|
if (item != null) {
|
||||||
|
item.setVisible(false);
|
||||||
|
item.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void filter(List<Integer> toShow, List<Integer> toDisable, List <Integer> toHide) {
|
||||||
|
boolean downloading = false;
|
||||||
|
boolean uploading = false;
|
||||||
|
if (mComponentsGetter != null && mFile != null && mAccount != null) {
|
||||||
|
FileDownloaderBinder downloaderBinder = mComponentsGetter.getFileDownloaderBinder();
|
||||||
|
downloading = downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile);
|
||||||
|
FileUploaderBinder uploaderBinder = mComponentsGetter.getFileUploaderBinder();
|
||||||
|
uploading = uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_download_file
|
||||||
|
if (mFile == null || mFile.isFolder() || mFile.isDown() || downloading || uploading ||
|
||||||
|
(mFragment != null && (
|
||||||
|
mFragment instanceof PreviewImageFragment ||
|
||||||
|
mFragment instanceof PreviewMediaFragment
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
toHide.add(R.id.action_download_file);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_download_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_rename_file
|
||||||
|
if ((downloading || uploading) &&
|
||||||
|
(mFragment != null && mFragment instanceof OCFileListFragment)
|
||||||
|
) {
|
||||||
|
toDisable.add(R.id.action_rename_file);
|
||||||
|
|
||||||
|
} else if (mFile == null || downloading || uploading ||
|
||||||
|
(mFragment != null && (
|
||||||
|
mFragment instanceof PreviewImageFragment ||
|
||||||
|
mFragment instanceof PreviewMediaFragment
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
toHide.add(R.id.action_rename_file);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_rename_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_remove_file
|
||||||
|
if ((downloading || uploading) &&
|
||||||
|
(mFragment != null && mFragment instanceof OCFileListFragment)
|
||||||
|
) {
|
||||||
|
toDisable.add(R.id.action_remove_file);
|
||||||
|
|
||||||
|
} else if (mFile == null || downloading || uploading) {
|
||||||
|
toHide.add(R.id.action_remove_file);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_remove_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_open_file_with
|
||||||
|
if (mFile == null || mFile.isFolder() || !mFile.isDown() || downloading || uploading ||
|
||||||
|
(mFragment != null && mFragment instanceof OCFileListFragment)) {
|
||||||
|
toHide.add(R.id.action_open_file_with);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_open_file_with);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// R.id.action_cancel_download
|
||||||
|
if (mFile == null || !downloading || mFile.isFolder() ||
|
||||||
|
(mFragment != null && (
|
||||||
|
(mFragment instanceof PreviewImageFragment) ||
|
||||||
|
(mFragment instanceof PreviewMediaFragment)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
toHide.add(R.id.action_cancel_download);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_cancel_download);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_cancel_upload
|
||||||
|
if (mFile == null || !uploading || mFile.isFolder() ||
|
||||||
|
(mFragment != null && (
|
||||||
|
(mFragment instanceof PreviewImageFragment) ||
|
||||||
|
(mFragment instanceof PreviewMediaFragment)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
toHide.add(R.id.action_cancel_upload);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_cancel_upload);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_sync_file
|
||||||
|
if (mFile == null || mFile.isFolder() || !mFile.isDown() || downloading || uploading ||
|
||||||
|
(mFragment != null && mFragment instanceof PreviewMediaFragment)
|
||||||
|
) {
|
||||||
|
toHide.add(R.id.action_sync_file);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_sync_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_share_file // TODO add check on SHARE available on server side?
|
||||||
|
if (mFile == null) {
|
||||||
|
toHide.add(R.id.action_share_file);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_share_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_unshare_file // TODO add check on SHARE available on server side?
|
||||||
|
if (mFile == null || !mFile.isShareByLink()) {
|
||||||
|
toHide.add(R.id.action_unshare_file);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_unshare_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// R.id.action_see_details
|
||||||
|
if (mFile == null || mFile.isFolder() || (mFragment != null && mFragment instanceof FileDetailFragment)) {
|
||||||
|
// TODO check dual pane when FileDetailFragment is shown
|
||||||
|
toHide.add(R.id.action_see_details);
|
||||||
|
} else {
|
||||||
|
toShow.add(R.id.action_see_details);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R.id.action_send_file
|
||||||
|
boolean sendEnabled = (mContext != null &&
|
||||||
|
mContext.getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on"));
|
||||||
|
if (mFile != null && sendEnabled && !mFile.isFolder()) {
|
||||||
|
toShow.add(R.id.action_send_file);
|
||||||
|
} else {
|
||||||
|
toHide.add(R.id.action_send_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -18,8 +18,6 @@
|
||||||
package com.owncloud.android.ui.fragment;
|
package com.owncloud.android.ui.fragment;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -39,6 +37,7 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.datamodel.FileDataStorageManager;
|
import com.owncloud.android.datamodel.FileDataStorageManager;
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
|
import com.owncloud.android.files.FileMenuFilter;
|
||||||
import com.owncloud.android.files.services.FileObserverService;
|
import com.owncloud.android.files.services.FileObserverService;
|
||||||
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
||||||
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
||||||
|
@ -136,23 +135,6 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-*
|
|
||||||
* {@inheritDoc}
|
|
||||||
*-/
|
|
||||||
@Override
|
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
|
||||||
super.onActivityCreated(savedInstanceState);
|
|
||||||
if (mAccount != null) {
|
|
||||||
OCFile file = ((FileActivity)getActivity()).getStorageManager().
|
|
||||||
getFileByPath(getFile().getRemotePath());
|
|
||||||
if (file != null) {
|
|
||||||
setFile(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
@ -186,6 +168,10 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
inflater.inflate(R.menu.file_actions_menu, menu);
|
inflater.inflate(R.menu.file_actions_menu, menu);
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO Maybe should stay here? It's context (fragment) specific
|
||||||
|
|
||||||
MenuItem item = menu.findItem(R.id.action_see_details);
|
MenuItem item = menu.findItem(R.id.action_see_details);
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
item.setVisible(false);
|
item.setVisible(false);
|
||||||
|
@ -205,6 +191,7 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -215,81 +202,13 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
public void onPrepareOptionsMenu (Menu menu) {
|
public void onPrepareOptionsMenu (Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
|
|
||||||
List<Integer> toHide = new ArrayList<Integer>();
|
FileMenuFilter mf = new FileMenuFilter();
|
||||||
List<Integer> toShow = new ArrayList<Integer>();
|
mf.setFile(getFile());
|
||||||
OCFile file = getFile();
|
mf.setComponentGetter(mContainerActivity);
|
||||||
|
mf.setAccount(mContainerActivity.getStorageManager().getAccount());
|
||||||
FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
|
mf.setContext(getSherlockActivity());
|
||||||
boolean downloading = downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file);
|
mf.setFragment(this);
|
||||||
FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();
|
mf.filter(menu);
|
||||||
boolean uploading = uploaderBinder != null && uploaderBinder.isUploading(mAccount, getFile());
|
|
||||||
|
|
||||||
if (downloading || uploading) {
|
|
||||||
toHide.add(R.id.action_download_file);
|
|
||||||
toHide.add(R.id.action_rename_file);
|
|
||||||
toHide.add(R.id.action_remove_file);
|
|
||||||
toHide.add(R.id.action_open_file_with);
|
|
||||||
if (!downloading) {
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toShow.add(R.id.action_cancel_upload);
|
|
||||||
} else {
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
toShow.add(R.id.action_cancel_download);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (file != null && file.isDown()) {
|
|
||||||
toHide.add(R.id.action_download_file);
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
|
|
||||||
toShow.add(R.id.action_rename_file);
|
|
||||||
toShow.add(R.id.action_remove_file);
|
|
||||||
toShow.add(R.id.action_open_file_with);
|
|
||||||
toShow.add(R.id.action_sync_file);
|
|
||||||
|
|
||||||
} else if (file != null) {
|
|
||||||
toHide.add(R.id.action_open_file_with);
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
toHide.add(R.id.action_sync_file);
|
|
||||||
|
|
||||||
toShow.add(R.id.action_rename_file);
|
|
||||||
toShow.add(R.id.action_remove_file);
|
|
||||||
toShow.add(R.id.action_download_file);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
toHide.add(R.id.action_open_file_with);
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
toHide.add(R.id.action_sync_file);
|
|
||||||
toHide.add(R.id.action_download_file);
|
|
||||||
toHide.add(R.id.action_rename_file);
|
|
||||||
toHide.add(R.id.action_remove_file);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Options shareLink
|
|
||||||
if (!file.isShareByLink()) {
|
|
||||||
toHide.add(R.id.action_unshare_file);
|
|
||||||
} else {
|
|
||||||
toShow.add(R.id.action_unshare_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItem item = null;
|
|
||||||
for (int i : toHide) {
|
|
||||||
item = menu.findItem(i);
|
|
||||||
if (item != null) {
|
|
||||||
item.setVisible(false);
|
|
||||||
item.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i : toShow) {
|
|
||||||
item = menu.findItem(i);
|
|
||||||
if (item != null) {
|
|
||||||
item.setVisible(true);
|
|
||||||
item.setEnabled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,12 +19,12 @@ package com.owncloud.android.ui.fragment;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.authentication.AccountUtils;
|
import com.owncloud.android.authentication.AccountUtils;
|
||||||
import com.owncloud.android.datamodel.FileDataStorageManager;
|
import com.owncloud.android.datamodel.FileDataStorageManager;
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
|
import com.owncloud.android.files.FileMenuFilter;
|
||||||
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
||||||
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
||||||
import com.owncloud.android.ui.adapter.FileListListAdapter;
|
import com.owncloud.android.ui.adapter.FileListListAdapter;
|
||||||
|
@ -56,7 +56,8 @@ import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
* @author masensio
|
* @author masensio
|
||||||
* @author David A. Velasco
|
* @author David A. Velasco
|
||||||
*/
|
*/
|
||||||
public class OCFileListFragment extends ExtendedListFragment implements EditNameDialogListener, ConfirmationDialogFragmentListener {
|
public class OCFileListFragment extends ExtendedListFragment
|
||||||
|
implements EditNameDialogListener, ConfirmationDialogFragmentListener {
|
||||||
|
|
||||||
private static final String TAG = OCFileListFragment.class.getSimpleName();
|
private static final String TAG = OCFileListFragment.class.getSimpleName();
|
||||||
|
|
||||||
|
@ -297,81 +298,14 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
inflater.inflate(R.menu.file_actions_menu, menu);
|
inflater.inflate(R.menu.file_actions_menu, menu);
|
||||||
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
|
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
|
||||||
OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
|
OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
|
||||||
List<Integer> toHide = new ArrayList<Integer>();
|
|
||||||
List<Integer> toDisable = new ArrayList<Integer>();
|
|
||||||
|
|
||||||
MenuItem item = null;
|
FileMenuFilter mf = new FileMenuFilter();
|
||||||
if (targetFile.isFolder()) {
|
mf.setFile(targetFile);
|
||||||
// contextual menu for folders
|
mf.setComponentGetter(mContainerActivity);
|
||||||
toHide.add(R.id.action_open_file_with);
|
mf.setAccount(mContainerActivity.getStorageManager().getAccount());
|
||||||
toHide.add(R.id.action_download_file);
|
mf.setContext(getSherlockActivity());
|
||||||
toHide.add(R.id.action_cancel_download);
|
mf.setFragment(this);
|
||||||
toHide.add(R.id.action_cancel_upload);
|
mf.filter(menu);
|
||||||
toHide.add(R.id.action_sync_file);
|
|
||||||
toHide.add(R.id.action_see_details);
|
|
||||||
toHide.add(R.id.action_send_file);
|
|
||||||
if ( mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), targetFile) ||
|
|
||||||
mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), targetFile) ) {
|
|
||||||
toDisable.add(R.id.action_rename_file);
|
|
||||||
toDisable.add(R.id.action_remove_file);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// contextual menu for regular files
|
|
||||||
|
|
||||||
// new design: 'download' and 'open with' won't be available anymore in context menu
|
|
||||||
toHide.add(R.id.action_download_file);
|
|
||||||
toHide.add(R.id.action_open_file_with);
|
|
||||||
|
|
||||||
if (targetFile.isDown()) {
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
toHide.add(R.id.action_sync_file);
|
|
||||||
}
|
|
||||||
if ( mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), targetFile)) {
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
toDisable.add(R.id.action_rename_file);
|
|
||||||
toDisable.add(R.id.action_remove_file);
|
|
||||||
|
|
||||||
} else if ( mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), targetFile)) {
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toDisable.add(R.id.action_rename_file);
|
|
||||||
toDisable.add(R.id.action_remove_file);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
toHide.add(R.id.action_cancel_download);
|
|
||||||
toHide.add(R.id.action_cancel_upload);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Options shareLink
|
|
||||||
if (!targetFile.isShareByLink()) {
|
|
||||||
toHide.add(R.id.action_unshare_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Send file
|
|
||||||
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
|
||||||
if (!sendEnabled) {
|
|
||||||
toHide.add(R.id.action_send_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i : toHide) {
|
|
||||||
item = menu.findItem(i);
|
|
||||||
if (item != null) {
|
|
||||||
item.setVisible(false);
|
|
||||||
item.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i : toDisable) {
|
|
||||||
item = menu.findItem(i);
|
|
||||||
if (item != null) {
|
|
||||||
item.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
package com.owncloud.android.ui.preview;
|
package com.owncloud.android.ui.preview;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
|
@ -46,6 +44,7 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.datamodel.FileDataStorageManager;
|
import com.owncloud.android.datamodel.FileDataStorageManager;
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
|
import com.owncloud.android.files.FileMenuFilter;
|
||||||
import com.owncloud.android.ui.activity.FileActivity;
|
import com.owncloud.android.ui.activity.FileActivity;
|
||||||
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
|
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
|
||||||
import com.owncloud.android.ui.fragment.FileFragment;
|
import com.owncloud.android.ui.fragment.FileFragment;
|
||||||
|
@ -219,19 +218,13 @@ ConfirmationDialogFragment.ConfirmationDialogFragmentListener {
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
|
|
||||||
inflater.inflate(R.menu.file_actions_menu, menu);
|
inflater.inflate(R.menu.file_actions_menu, menu);
|
||||||
List<Integer> toHide = new ArrayList<Integer>();
|
/*List<Integer> toHide = new ArrayList<Integer>();
|
||||||
|
|
||||||
MenuItem item = null;
|
MenuItem item = null;
|
||||||
toHide.add(R.id.action_cancel_download);
|
toHide.add(R.id.action_cancel_download);
|
||||||
toHide.add(R.id.action_cancel_upload);
|
toHide.add(R.id.action_cancel_upload);
|
||||||
toHide.add(R.id.action_download_file);
|
toHide.add(R.id.action_download_file);
|
||||||
toHide.add(R.id.action_rename_file); // by now
|
toHide.add(R.id.action_rename_file); // by now
|
||||||
|
|
||||||
// Options shareLink
|
|
||||||
if (!getFile().isShareByLink()) {
|
|
||||||
toHide.add(R.id.action_unshare_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Send file
|
// Send file
|
||||||
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
||||||
if (!sendEnabled) {
|
if (!sendEnabled) {
|
||||||
|
@ -245,6 +238,7 @@ ConfirmationDialogFragment.ConfirmationDialogFragmentListener {
|
||||||
item.setEnabled(false);
|
item.setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,6 +249,15 @@ ConfirmationDialogFragment.ConfirmationDialogFragmentListener {
|
||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareOptionsMenu(Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
|
|
||||||
|
FileMenuFilter mf = new FileMenuFilter();
|
||||||
|
mf.setFile(getFile());
|
||||||
|
mf.setComponentGetter(mContainerActivity);
|
||||||
|
mf.setAccount(mContainerActivity.getStorageManager().getAccount());
|
||||||
|
mf.setContext(getSherlockActivity());
|
||||||
|
mf.setFragment(this);
|
||||||
|
mf.filter(menu);
|
||||||
|
|
||||||
|
/*
|
||||||
MenuItem item = menu.findItem(R.id.action_unshare_file);
|
MenuItem item = menu.findItem(R.id.action_unshare_file);
|
||||||
// Options shareLink
|
// Options shareLink
|
||||||
if (!getFile().isShareByLink()) {
|
if (!getFile().isShareByLink()) {
|
||||||
|
@ -264,7 +267,7 @@ ConfirmationDialogFragment.ConfirmationDialogFragmentListener {
|
||||||
item.setVisible(true);
|
item.setVisible(true);
|
||||||
item.setEnabled(true);
|
item.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,6 @@
|
||||||
*/
|
*/
|
||||||
package com.owncloud.android.ui.preview;
|
package com.owncloud.android.ui.preview;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
@ -50,6 +47,7 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.datamodel.FileDataStorageManager;
|
import com.owncloud.android.datamodel.FileDataStorageManager;
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
|
import com.owncloud.android.files.FileMenuFilter;
|
||||||
import com.owncloud.android.media.MediaControlView;
|
import com.owncloud.android.media.MediaControlView;
|
||||||
import com.owncloud.android.media.MediaService;
|
import com.owncloud.android.media.MediaService;
|
||||||
import com.owncloud.android.media.MediaServiceBinder;
|
import com.owncloud.android.media.MediaServiceBinder;
|
||||||
|
@ -250,6 +248,7 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
|
|
||||||
inflater.inflate(R.menu.file_actions_menu, menu);
|
inflater.inflate(R.menu.file_actions_menu, menu);
|
||||||
|
/*
|
||||||
List<Integer> toHide = new ArrayList<Integer>();
|
List<Integer> toHide = new ArrayList<Integer>();
|
||||||
|
|
||||||
MenuItem item = null;
|
MenuItem item = null;
|
||||||
|
@ -277,6 +276,7 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
item.setEnabled(false);
|
item.setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,6 +288,15 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareOptionsMenu(Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
|
|
||||||
|
FileMenuFilter mf = new FileMenuFilter();
|
||||||
|
mf.setFile(getFile());
|
||||||
|
mf.setComponentGetter(mContainerActivity);
|
||||||
|
mf.setAccount(mContainerActivity.getStorageManager().getAccount());
|
||||||
|
mf.setContext(getSherlockActivity());
|
||||||
|
mf.setFragment(this);
|
||||||
|
mf.filter(menu);
|
||||||
|
|
||||||
|
/*
|
||||||
MenuItem item = menu.findItem(R.id.action_unshare_file);
|
MenuItem item = menu.findItem(R.id.action_unshare_file);
|
||||||
// Options shareLink
|
// Options shareLink
|
||||||
if (!getFile().isShareByLink()) {
|
if (!getFile().isShareByLink()) {
|
||||||
|
@ -297,6 +306,7 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
item.setVisible(true);
|
item.setVisible(true);
|
||||||
item.setEnabled(true);
|
item.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue