Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÁlvaro Brey <alvaro.brey@nextcloud.com>2022-11-11 18:14:35 +0300
committerÁlvaro Brey <alvaro.brey@nextcloud.com>2022-11-11 18:18:48 +0300
commitcefbb66565cc874f4a725e595822e7523b86ae58 (patch)
tree5e37f35e57cb9ca0a03965caf6a95a3787781e6c
parent8f74bfaddbd8643bf3497b84ec750d7240a27cd0 (diff)
FileMenuFilter: simplify and remove unneeded stuff for new approachfeature/file-actions-bottom-sheet
We're always starting from the full list and removing stuff now, so toShow makes no sense Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
-rw-r--r--app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt68
-rw-r--r--app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt2
-rw-r--r--app/src/main/java/com/owncloud/android/files/FileMenuFilter.java239
3 files changed, 94 insertions, 215 deletions
diff --git a/app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt b/app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt
index 1c039dc3ac..ea5ce19c0e 100644
--- a/app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt
+++ b/app/src/androidTest/java/com/owncloud/android/files/FileMenuFilterIT.kt
@@ -20,8 +20,6 @@
*/
package com.owncloud.android.files
-import android.view.Menu
-import androidx.appcompat.view.menu.MenuBuilder
import androidx.test.core.app.launchActivity
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.nextcloud.client.TestActivity
@@ -50,7 +48,6 @@ import org.junit.Test
import org.junit.runner.RunWith
import java.security.SecureRandom
-// TODO update this class to an unit test checking FileActions instead of an actual menu, and not using filter()
@RunWith(AndroidJUnit4::class)
class FileMenuFilterIT : AbstractIT() {
@@ -97,7 +94,7 @@ class FileMenuFilterIT : AbstractIT() {
testLockingVisibilities(
capability,
file,
- ExpectedLockVisibilities(lockFile = false, unlockFile = false, lockedBy = false, lockedUntil = false)
+ ExpectedLockVisibilities(lockFile = false, unlockFile = false)
)
}
@@ -113,7 +110,7 @@ class FileMenuFilterIT : AbstractIT() {
testLockingVisibilities(
capability,
file,
- ExpectedLockVisibilities(lockFile = true, unlockFile = false, lockedBy = false, lockedUntil = false)
+ ExpectedLockVisibilities(lockFile = true, unlockFile = false)
)
}
@@ -136,7 +133,7 @@ class FileMenuFilterIT : AbstractIT() {
testLockingVisibilities(
capability,
file,
- ExpectedLockVisibilities(lockFile = false, unlockFile = true, lockedBy = true, lockedUntil = true)
+ ExpectedLockVisibilities(lockFile = false, unlockFile = true)
)
}
@@ -158,7 +155,7 @@ class FileMenuFilterIT : AbstractIT() {
testLockingVisibilities(
capability,
file,
- ExpectedLockVisibilities(lockFile = false, unlockFile = false, lockedBy = true, lockedUntil = true)
+ ExpectedLockVisibilities(lockFile = false, unlockFile = false)
)
}
@@ -192,47 +189,43 @@ class FileMenuFilterIT : AbstractIT() {
launchActivity<TestActivity>().use {
it.onActivity { activity ->
- val menu = getMenu(activity)
-
val filterFactory =
FileMenuFilter.Factory(mockStorageManager, activity, mockEditorUtils)
var sut = filterFactory.newInstance(encryptedFolder, mockComponentsGetter, true, user)
- sut.filter(menu, false)
+ var toHide = sut.getToHide(false)
// encrypted folder, with content
- assertFalse(menu.findItem(R.id.action_unset_encrypted).isVisible)
- assertFalse(menu.findItem(R.id.action_encrypted).isVisible)
+ assertTrue(toHide.contains(R.id.action_unset_encrypted))
+ assertTrue(toHide.contains(R.id.action_encrypted))
// encrypted, but empty folder
sut = filterFactory.newInstance(encryptedEmptyFolder, mockComponentsGetter, true, user)
- sut.filter(menu, false)
+ toHide = sut.getToHide(false)
- assertTrue(menu.findItem(R.id.action_unset_encrypted).isVisible)
- assertFalse(menu.findItem(R.id.action_encrypted).isVisible)
+ assertFalse(toHide.contains(R.id.action_unset_encrypted))
+ assertTrue(toHide.contains(R.id.action_encrypted))
// regular folder, with content
sut = filterFactory.newInstance(normalFolder, mockComponentsGetter, true, user)
- sut.filter(menu, false)
+ toHide = sut.getToHide(false)
- assertFalse(menu.findItem(R.id.action_unset_encrypted).isVisible)
- assertFalse(menu.findItem(R.id.action_encrypted).isVisible)
+ assertTrue(toHide.contains(R.id.action_unset_encrypted))
+ assertTrue(toHide.contains(R.id.action_encrypted))
// regular folder, without content
sut = filterFactory.newInstance(normalEmptyFolder, mockComponentsGetter, true, user)
- sut.filter(menu, false)
+ toHide = sut.getToHide(false)
- assertFalse(menu.findItem(R.id.action_unset_encrypted).isVisible)
- assertTrue(menu.findItem(R.id.action_encrypted).isVisible)
+ assertTrue(toHide.contains(R.id.action_unset_encrypted))
+ assertFalse(toHide.contains(R.id.action_encrypted))
}
}
}
private data class ExpectedLockVisibilities(
val lockFile: Boolean,
- val unlockFile: Boolean,
- val lockedBy: Boolean,
- val lockedUntil: Boolean
+ val unlockFile: Boolean
)
private fun configureCapability(capability: OCCapability) {
@@ -240,13 +233,6 @@ class FileMenuFilterIT : AbstractIT() {
every { mockStorageManager.getCapability(any<String>()) } returns capability
}
- private fun getMenu(activity: TestActivity): Menu {
- val inflater = activity.menuInflater
- val menu = MenuBuilder(activity)
- inflater.inflate(R.menu.item_file, menu)
- return menu
- }
-
private fun testLockingVisibilities(
capability: OCCapability,
file: OCFile,
@@ -256,34 +242,20 @@ class FileMenuFilterIT : AbstractIT() {
launchActivity<TestActivity>().use {
it.onActivity { activity ->
- val menu = getMenu(activity)
-
val filterFactory =
FileMenuFilter.Factory(mockStorageManager, activity, mockEditorUtils)
val sut = filterFactory.newInstance(file, mockComponentsGetter, true, user)
- sut.filter(menu, false)
+ val toHide = sut.getToHide(false)
assertEquals(
expectedLockVisibilities.lockFile,
- menu.findItem(R.id.action_lock_file).isVisible
+ !toHide.contains(R.id.action_lock_file)
)
assertEquals(
expectedLockVisibilities.unlockFile,
- menu.findItem(R.id.action_unlock_file).isVisible
+ !toHide.contains(R.id.action_unlock_file)
)
- assertEquals(
- expectedLockVisibilities.lockedBy,
- menu.findItem(R.id.action_locked_by).isVisible
- )
- assertEquals(
- expectedLockVisibilities.lockedUntil,
- menu.findItem(R.id.action_locked_until).isVisible
- )
-
- // locked by and until should always be disabled, they're not real actions
- assertFalse(menu.findItem(R.id.action_locked_by).isEnabled)
- assertFalse(menu.findItem(R.id.action_locked_until).isEnabled)
}
}
}
diff --git a/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt b/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt
index 6cd4f111b3..ddb179078c 100644
--- a/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt
+++ b/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt
@@ -49,7 +49,6 @@ import com.owncloud.android.utils.DisplayUtils.AvatarGenerationListener
import com.owncloud.android.utils.theme.ViewThemeUtils
import javax.inject.Inject
-// TODO theming
class FileActionsBottomSheet private constructor() : BottomSheetDialogFragment(), Injectable {
lateinit var componentsGetter: ComponentsGetter
@@ -140,7 +139,6 @@ class FileActionsBottomSheet private constructor() : BottomSheetDialogFragment()
private fun displayLockInfo(lockInfo: FileActionsViewModel.LockInfo, inflater: LayoutInflater) {
val view = FileActionsBottomSheetItemBinding.inflate(inflater, binding.fileActionsList, false)
.apply {
- // TODO theme
val textColor = ColorStateList.valueOf(resources.getColor(R.color.secondary_text_color, null))
root.isClickable = false
text.setTextColor(textColor)
diff --git a/app/src/main/java/com/owncloud/android/files/FileMenuFilter.java b/app/src/main/java/com/owncloud/android/files/FileMenuFilter.java
index 5c46507793..50cee00492 100644
--- a/app/src/main/java/com/owncloud/android/files/FileMenuFilter.java
+++ b/app/src/main/java/com/owncloud/android/files/FileMenuFilter.java
@@ -3,8 +3,11 @@
*
* @author David A. Velasco
* @author Andy Scherzinger
+ * @author Álvaro Brey
* Copyright (C) 2015 ownCloud Inc.
* Copyright (C) 2018 Andy Scherzinger
+ * Copyright (C) 2022 Álvaro Brey Vilas
+ * Copyright (C) 2022 Nextcloud GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
@@ -24,12 +27,10 @@ package com.owncloud.android.files;
import android.accounts.AccountManager;
import android.content.Context;
import android.view.Menu;
-import android.view.MenuItem;
import com.nextcloud.android.files.FileLockingHelper;
import com.nextcloud.client.account.User;
import com.nextcloud.utils.EditorUtils;
-import com.nextcloud.utils.MenuUtils;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
@@ -50,7 +51,6 @@ import java.util.List;
import javax.inject.Inject;
import androidx.annotation.IdRes;
-import androidx.annotation.VisibleForTesting;
/**
* Filters out the file actions available in a given {@link Menu} for a given {@link OCFile}
@@ -74,9 +74,9 @@ public class FileMenuFilter {
public static class Factory {
- private FileDataStorageManager storageManager;
- private Context context;
- private EditorUtils editorUtils;
+ private final FileDataStorageManager storageManager;
+ private final Context context;
+ private final EditorUtils editorUtils;
@Inject
public Factory(final FileDataStorageManager storageManager, final Context context, final EditorUtils editorUtils) {
@@ -130,112 +130,67 @@ public class FileMenuFilter {
}
/**
- * Temporary while migrating to bottom sheet
- *
- * TODO refactor and remove
+ * List of actions to remove given the parameters supplied in the constructor
*/
@IdRes
public List<Integer> getToHide(final boolean inSingleFileFragment){
if(files != null && ! files.isEmpty()){
- List<Integer> toShow = new ArrayList<>();
- List<Integer> toHide = new ArrayList<>();
- filter(toShow, toHide, inSingleFileFragment);
- return toHide;
+ return filter(inSingleFileFragment);
}
return null;
}
- /**
- * Filters out the file actions available in the passed {@link Menu} taken into account the state of the {@link
- * OCFile} held by the filter.
- *
- * @param menu Options or context menu to filter.
- * @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details.
- */
- @Deprecated
- @VisibleForTesting // TODO remove this, we only need toHide now
- public void filter(Menu menu, boolean inSingleFileFragment) {
- if (files == null || files.isEmpty()) {
- MenuUtils.hideAll(menu);
- } else {
- List<Integer> toShow = new ArrayList<>();
- List<Integer> toHide = new ArrayList<>();
-
- filter(toShow, toHide, inSingleFileFragment);
-
- for (int i : toShow) {
- final MenuItem item = menu.findItem(i);
- if (item != null) {
- MenuUtils.showMenuItem(item);
- } else {
- // group
- menu.setGroupVisible(i, true);
- }
- }
-
- for (int i : toHide) {
- final MenuItem item = menu.findItem(i);
- if (item != null) {
- MenuUtils.hideMenuItem(item);
- } else {
- // group
- menu.setGroupVisible(i, false);
- }
- }
- }
- }
/**
* Decides what actions must be shown and hidden implementing the different rule sets.
- * @param toShow List to save the options that must be shown in the menu.
- * @param toHide List to save the options that must be shown in the menu.
- * @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details.
+ *
+ * @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details.
*/
- private void filter(List<Integer> toShow,
- List<Integer> toHide,
- boolean inSingleFileFragment) {
+ private List<Integer> filter(boolean inSingleFileFragment) {
boolean synchronizing = anyFileSynchronizing();
OCCapability capability = storageManager.getCapability(user.getAccountName());
boolean endToEndEncryptionEnabled = capability.getEndToEndEncryption().isTrue();
boolean fileLockingEnabled = capability.getFilesLockingVersion() != null;
- filterEdit(toShow, toHide, capability);
- filterDownload(toShow, toHide, synchronizing);
- filterExport(toShow, toHide);
- filterRename(toShow, toHide, synchronizing);
- filterCopy(toShow, toHide, synchronizing);
- filterMove(toShow, toHide, synchronizing);
- filterRemove(toShow, toHide, synchronizing);
- filterSelectAll(toShow, toHide, inSingleFileFragment);
- filterDeselectAll(toShow, toHide, inSingleFileFragment);
- filterOpenWith(toShow, toHide, synchronizing);
- filterCancelSync(toShow, toHide, synchronizing);
- filterSync(toShow, toHide, synchronizing);
- filterShareFile(toShow, toHide, capability);
- filterSendFiles(toShow, toHide, inSingleFileFragment);
- filterDetails(toShow, toHide);
- filterFavorite(toShow, toHide, synchronizing);
- filterUnfavorite(toShow, toHide, synchronizing);
- filterEncrypt(toShow, toHide, endToEndEncryptionEnabled);
- filterUnsetEncrypted(toShow, toHide, endToEndEncryptionEnabled);
- filterSetPictureAs(toShow, toHide);
- filterStream(toShow, toHide);
- filterLock(toShow, toHide, fileLockingEnabled);
- filterUnlock(toShow, toHide, fileLockingEnabled);
- filterLockInfo(toShow, toHide, fileLockingEnabled);
- }
-
- private void filterShareFile(List<Integer> toShow, List<Integer> toHide, OCCapability capability) {
+ @IdRes final List<Integer> toHide = new ArrayList<>();
+
+ filterEdit(toHide, capability);
+ filterDownload(toHide, synchronizing);
+ filterExport(toHide);
+ filterRename(toHide, synchronizing);
+ filterCopy(toHide, synchronizing);
+ filterMove(toHide, synchronizing);
+ filterRemove(toHide, synchronizing);
+ filterSelectAll(toHide, inSingleFileFragment);
+ filterDeselectAll(toHide, inSingleFileFragment);
+ filterOpenWith(toHide, synchronizing);
+ filterCancelSync(toHide, synchronizing);
+ filterSync(toHide, synchronizing);
+ filterShareFile(toHide, capability);
+ filterSendFiles(toHide, inSingleFileFragment);
+ filterDetails(toHide);
+ filterFavorite(toHide, synchronizing);
+ filterUnfavorite(toHide, synchronizing);
+ filterEncrypt(toHide, endToEndEncryptionEnabled);
+ filterUnsetEncrypted(toHide, endToEndEncryptionEnabled);
+ filterSetPictureAs(toHide);
+ filterStream(toHide);
+ filterLock(toHide, fileLockingEnabled);
+ filterUnlock(toHide, fileLockingEnabled);
+ filterLockInfo(toHide, fileLockingEnabled);
+
+ return toHide;
+ }
+
+ private void filterShareFile(List<Integer> toHide, OCCapability capability) {
if (containsEncryptedFile() || (!isShareViaLinkAllowed() && !isShareWithUsersAllowed()) ||
!isSingleSelection() || !isShareApiEnabled(capability) || !files.iterator().next().canReshare()
|| overflowMenu) {
toHide.add(R.id.action_send_share_file);
- } else {
- toShow.add(R.id.action_send_share_file);
}
}
- private void filterSendFiles(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment) {
+ private void filterSendFiles(List<Integer> toHide, boolean inSingleFileFragment) {
boolean show = true;
if (overflowMenu || SEND_OFF.equalsIgnoreCase(context.getString(R.string.send_files_to_other_apps)) || containsEncryptedFile()) {
show = false;
@@ -243,106 +198,86 @@ public class FileMenuFilter {
if (!inSingleFileFragment && (isSingleSelection() || !anyFileDown())) {
show = false;
}
- if (show) {
- toShow.add(R.id.action_send_file);
- } else {
+ if (!show) {
toHide.add(R.id.action_send_file);
}
}
- private void filterDetails(Collection<Integer> toShow, Collection<Integer> toHide) {
- if (isSingleSelection()) {
- toShow.add(R.id.action_see_details);
- } else {
+ private void filterDetails(Collection<Integer> toHide) {
+ if (!isSingleSelection()) {
toHide.add(R.id.action_see_details);
}
}
- private void filterFavorite(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterFavorite(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || synchronizing || allFavorites()) {
toHide.add(R.id.action_favorite);
- } else {
- toShow.add(R.id.action_favorite);
}
}
- private void filterUnfavorite(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterUnfavorite(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || synchronizing || allNotFavorites()) {
toHide.add(R.id.action_unset_favorite);
- } else {
- toShow.add(R.id.action_unset_favorite);
}
}
- private void filterLock(List<Integer> toShow, List<Integer> toHide, boolean fileLockingEnabled) {
+ private void filterLock(List<Integer> toHide, boolean fileLockingEnabled) {
if (files.isEmpty() || !isSingleSelection() || !fileLockingEnabled) {
toHide.add(R.id.action_lock_file);
} else {
OCFile file = files.iterator().next();
if (file.isLocked() || file.isFolder()) {
toHide.add(R.id.action_lock_file);
- } else {
- toShow.add(R.id.action_lock_file);
}
}
}
- private void filterUnlock(List<Integer> toShow, List<Integer> toHide, boolean fileLockingEnabled) {
+ private void filterUnlock(List<Integer> toHide, boolean fileLockingEnabled) {
if (files.isEmpty() || !isSingleSelection() || !fileLockingEnabled) {
toHide.add(R.id.action_unlock_file);
} else {
OCFile file = files.iterator().next();
- if (FileLockingHelper.canUserUnlockFile(userId, file)) {
- toShow.add(R.id.action_unlock_file);
- } else {
+ if (!FileLockingHelper.canUserUnlockFile(userId, file)) {
toHide.add(R.id.action_unlock_file);
}
}
}
- private void filterLockInfo(List<Integer> toShow, List<Integer> toHide, boolean fileLockingEnabled) {
+ private void filterLockInfo(List<Integer> toHide, boolean fileLockingEnabled) {
if (files.isEmpty() || !isSingleSelection() || !fileLockingEnabled) {
toHide.add(R.id.menu_group_lock_info);
} else {
OCFile file = files.iterator().next();
- if (file.isLocked()) {
- toShow.add(R.id.menu_group_lock_info);
- } else {
+ if (!file.isLocked()) {
toHide.add(R.id.menu_group_lock_info);
}
}
}
- private void filterEncrypt(List<Integer> toShow, List<Integer> toHide, boolean endToEndEncryptionEnabled) {
+ private void filterEncrypt(List<Integer> toHide, boolean endToEndEncryptionEnabled) {
if (files.isEmpty() || !isSingleSelection() || isSingleFile() || isEncryptedFolder() || isGroupFolder()
|| !endToEndEncryptionEnabled || !isEmptyFolder()) {
toHide.add(R.id.action_encrypted);
- } else {
- toShow.add(R.id.action_encrypted);
}
}
- private void filterUnsetEncrypted(List<Integer> toShow, List<Integer> toHide, boolean endToEndEncryptionEnabled) {
+ private void filterUnsetEncrypted(List<Integer> toHide, boolean endToEndEncryptionEnabled) {
if (!endToEndEncryptionEnabled || files.isEmpty() || !isSingleSelection() || isSingleFile() || !isEncryptedFolder() || hasEncryptedParent()
|| !isEmptyFolder()) {
toHide.add(R.id.action_unset_encrypted);
- } else {
- toShow.add(R.id.action_unset_encrypted);
}
}
- private void filterSetPictureAs(List<Integer> toShow, List<Integer> toHide) {
- if (isSingleImage() && !MimeTypeUtil.isSVG(files.iterator().next())) {
- toShow.add(R.id.action_set_as_wallpaper);
- } else {
+ private void filterSetPictureAs(List<Integer> toHide) {
+ if (!isSingleImage() || MimeTypeUtil.isSVG(files.iterator().next())) {
toHide.add(R.id.action_set_as_wallpaper);
}
}
- private void filterEdit(List<Integer> toShow,
- List<Integer> toHide,
- OCCapability capability
- ) {
+ private void filterEdit(
+ List<Integer> toHide,
+ OCCapability capability
+ ) {
if (files.iterator().next().isEncrypted()) {
toHide.add(R.id.action_edit);
return;
@@ -350,9 +285,7 @@ public class FileMenuFilter {
String mimeType = files.iterator().next().getMimeType();
- if (isRichDocumentEditingSupported(capability, mimeType) || editorUtils.isEditorAvailable(user, mimeType)) {
- toShow.add(R.id.action_edit);
- } else {
+ if (!isRichDocumentEditingSupported(capability, mimeType) && !editorUtils.isEditorAvailable(user, mimeType)) {
toHide.add(R.id.action_edit);
}
}
@@ -368,31 +301,25 @@ public class FileMenuFilter {
capability.getRichDocumentsDirectEditing().isTrue();
}
- private void filterSync(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterSync(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || (!anyFileDown() && !containsFolder()) || synchronizing) {
toHide.add(R.id.action_sync_file);
- } else {
- toShow.add(R.id.action_sync_file);
}
}
- private void filterCancelSync(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterCancelSync(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || !synchronizing) {
toHide.add(R.id.action_cancel_sync);
- } else {
- toShow.add(R.id.action_cancel_sync);
}
}
- private void filterOpenWith(Collection<Integer> toShow, Collection<Integer> toHide, boolean synchronizing) {
+ private void filterOpenWith(Collection<Integer> toHide, boolean synchronizing) {
if (!isSingleFile() || !anyFileDown() || synchronizing) {
toHide.add(R.id.action_open_file_with);
- } else {
- toShow.add(R.id.action_open_file_with);
}
}
- private void filterDeselectAll(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment) {
+ private void filterDeselectAll(List<Integer> toHide, boolean inSingleFileFragment) {
if (inSingleFileFragment) {
// Always hide in single file fragments
toHide.add(R.id.action_deselect_all_action_menu);
@@ -400,19 +327,15 @@ public class FileMenuFilter {
// Show only if at least one item is selected.
if (files.isEmpty() || overflowMenu) {
toHide.add(R.id.action_deselect_all_action_menu);
- } else {
- toShow.add(R.id.action_deselect_all_action_menu);
}
}
}
- private void filterSelectAll(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment) {
+ private void filterSelectAll(List<Integer> toHide, boolean inSingleFileFragment) {
if (!inSingleFileFragment) {
// Show only if at least one item isn't selected.
if (files.size() >= numberOfAllFiles || overflowMenu) {
toHide.add(R.id.action_select_all_action_menu);
- } else {
- toShow.add(R.id.action_select_all_action_menu);
}
} else {
// Always hide in single file fragments
@@ -420,60 +343,46 @@ public class FileMenuFilter {
}
}
- private void filterRemove(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterRemove(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || synchronizing || containsLockedFile()) {
toHide.add(R.id.action_remove_file);
- } else {
- toShow.add(R.id.action_remove_file);
}
}
- private void filterMove(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterMove(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || synchronizing || containsEncryptedFile() || containsEncryptedFolder() || containsLockedFile()) {
toHide.add(R.id.action_move);
- } else {
- toShow.add(R.id.action_move);
}
}
- private void filterCopy(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterCopy(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || synchronizing || containsEncryptedFile() || containsEncryptedFolder()) {
toHide.add(R.id.action_copy);
- } else {
- toShow.add(R.id.action_copy);
}
}
- private void filterRename(Collection<Integer> toShow, Collection<Integer> toHide, boolean synchronizing) {
+ private void filterRename(Collection<Integer> toHide, boolean synchronizing) {
if (!isSingleSelection() || synchronizing || containsEncryptedFile() || containsEncryptedFolder() || containsLockedFile()) {
toHide.add(R.id.action_rename_file);
- } else {
- toShow.add(R.id.action_rename_file);
}
}
- private void filterDownload(List<Integer> toShow, List<Integer> toHide, boolean synchronizing) {
+ private void filterDownload(List<Integer> toHide, boolean synchronizing) {
if (files.isEmpty() || containsFolder() || anyFileDown() || synchronizing) {
toHide.add(R.id.action_download_file);
- } else {
- toShow.add(R.id.action_download_file);
}
}
- private void filterExport(List<Integer> toShow, List<Integer> toHide) {
+ private void filterExport(List<Integer> toHide) {
if (files.isEmpty() || containsFolder()) {
toHide.add(R.id.action_export_file);
- } else {
- toShow.add(R.id.action_export_file);
}
}
- private void filterStream(List<Integer> toShow, List<Integer> toHide) {
+ private void filterStream(List<Integer> toHide) {
if (files.isEmpty() || !isSingleFile() || !isSingleMedia()) {
toHide.add(R.id.action_stream_media);
- } else {
- toShow.add(R.id.action_stream_media);
}
}