summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/documentsui/MenuManager.java14
-rw-r--r--src/com/android/documentsui/util/FlagUtils.kt2
-rw-r--r--tests/common/com/android/documentsui/testing/TestMenu.java7
-rw-r--r--tests/common/com/android/documentsui/testing/TestMenuItem.java14
-rw-r--r--tests/unit/com/android/documentsui/files/MenuManagerTest.java8
-rw-r--r--tests/unit/com/android/documentsui/picker/MenuManagerTest.java24
6 files changed, 57 insertions, 12 deletions
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index 5f17d7e02..eb4f98aab 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -25,6 +25,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
@@ -183,6 +184,11 @@ public abstract class MenuManager {
updateRename(rename, selectionDetails);
updateViewInOwner(viewInOwner, selectionDetails);
+ if (isZipNgFlagEnabled()) {
+ updateExtractHere(menu.findItem(R.id.dir_menu_extract_here), selectionDetails);
+ updateBrowse(menu.findItem(R.id.dir_menu_browse), selectionDetails);
+ }
+
updateContextMenu(menu, selectionDetails);
}
@@ -383,6 +389,14 @@ public abstract class MenuManager {
Menus.setEnabledAndVisible(extractTo, false);
}
+ protected void updateExtractHere(@NonNull MenuItem it, SelectionDetails selection) {
+ Menus.setEnabledAndVisible(it, false);
+ }
+
+ protected void updateBrowse(@NonNull MenuItem it, SelectionDetails selection) {
+ Menus.setEnabledAndVisible(it, false);
+ }
+
protected void updatePasteInto(MenuItem pasteInto, SelectionDetails selectionDetails) {
Menus.setEnabledAndVisible(pasteInto, false);
}
diff --git a/src/com/android/documentsui/util/FlagUtils.kt b/src/com/android/documentsui/util/FlagUtils.kt
index eee51be89..22febc317 100644
--- a/src/com/android/documentsui/util/FlagUtils.kt
+++ b/src/com/android/documentsui/util/FlagUtils.kt
@@ -31,7 +31,7 @@ class FlagUtils {
@JvmStatic
fun isZipNgFlagEnabled(): Boolean {
- return Flags.zipNgRo()
+ return Flags.zipNgRo() && Flags.useMaterial3()
}
@JvmStatic
diff --git a/tests/common/com/android/documentsui/testing/TestMenu.java b/tests/common/com/android/documentsui/testing/TestMenu.java
index 9795fd373..a97e46e5d 100644
--- a/tests/common/com/android/documentsui/testing/TestMenu.java
+++ b/tests/common/com/android/documentsui/testing/TestMenu.java
@@ -26,7 +26,6 @@ import com.android.documentsui.R;
import org.mockito.Mockito;
/**
- *
* Test copy of {@link android.view.Menu}.
*
* We use abstract so we don't have to implement all the necessary methods from the interface,
@@ -55,6 +54,8 @@ public abstract class TestMenu implements Menu {
R.id.dir_menu_paste_into_folder,
R.id.dir_menu_inspect,
R.id.dir_menu_open_in_new_window,
+ R.id.dir_menu_extract_here,
+ R.id.dir_menu_browse,
R.id.root_menu_eject_root,
R.id.root_menu_open_in_new_window,
R.id.root_menu_paste_into_folder,
@@ -89,7 +90,6 @@ public abstract class TestMenu implements Menu {
}
-
public static TestMenu create(int... ids) {
final TestMenu menu = Mockito.mock(TestMenu.class,
Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
@@ -103,7 +103,8 @@ public abstract class TestMenu implements Menu {
item.setActionView(Mockito.mock(SearchView.class));
}
- if (id == R.id.option_menu_extract_all) {
+ if (id == R.id.option_menu_extract_all || id == R.id.dir_menu_extract_here
+ || id == R.id.dir_menu_browse) {
item.setEnabled(false);
item.setVisible(false);
}
diff --git a/tests/common/com/android/documentsui/testing/TestMenuItem.java b/tests/common/com/android/documentsui/testing/TestMenuItem.java
index 97ac602db..5463237b2 100644
--- a/tests/common/com/android/documentsui/testing/TestMenuItem.java
+++ b/tests/common/com/android/documentsui/testing/TestMenuItem.java
@@ -27,14 +27,12 @@ import androidx.annotation.StringRes;
import org.mockito.Mockito;
/**
-*
-* Test copy of {@link android.view.MenuItem}.
-*
-* We use abstract so we don't have to implement all the necessary methods from the interface,
-* and we use Mockito to just mock out the methods we need.
-* To get an instance, use {@link #create(int)}.
-*/
-
+ * Test copy of {@link android.view.MenuItem}.
+ *
+ * We use abstract so we don't have to implement all the necessary methods from the interface,
+ * and we use Mockito to just mock out the methods we need.
+ * To get an instance, use {@link #create(int)}.
+ */
public abstract class TestMenuItem implements MenuItem {
boolean enabled;
diff --git a/tests/unit/com/android/documentsui/files/MenuManagerTest.java b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
index ac7b1c4f7..2239dd4fb 100644
--- a/tests/unit/com/android/documentsui/files/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
@@ -79,6 +79,8 @@ public final class MenuManagerTest {
private TestMenuItem dirPasteIntoFolder;
private TestMenuItem dirInspect;
private TestMenuItem dirOpenInNewWindow;
+ private TestMenuItem mDirExtractHere;
+ private TestMenuItem mDirBrowse;
/* Root List Context Menu items */
private TestMenuItem rootEjectRoot;
@@ -156,6 +158,8 @@ public final class MenuManagerTest {
dirPasteIntoFolder = testMenu.findItem(R.id.dir_menu_paste_into_folder);
dirInspect = testMenu.findItem(R.id.dir_menu_inspect);
dirOpenInNewWindow = testMenu.findItem(R.id.dir_menu_open_in_new_window);
+ mDirExtractHere = testMenu.findItem(R.id.dir_menu_extract_here);
+ mDirBrowse = testMenu.findItem(R.id.dir_menu_browse);
rootEjectRoot = testMenu.findItem(R.id.root_menu_eject_root);
rootOpenInNewWindow = testMenu.findItem(R.id.root_menu_open_in_new_window);
@@ -545,6 +549,8 @@ public final class MenuManagerTest {
mDirDeselectAll.assertDisabledAndInvisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -616,6 +622,8 @@ public final class MenuManagerTest {
dirRename.assertDisabledAndInvisible();
dirCreateDir.assertEnabledAndVisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
diff --git a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
index 266489d61..485073128 100644
--- a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
@@ -70,6 +70,8 @@ public final class MenuManagerTest {
private TestMenuItem dirViewInOwner;
private TestMenuItem dirOpenInNewWindow;
private TestMenuItem dirPasteIntoFolder;
+ private TestMenuItem mDirExtractHere;
+ private TestMenuItem mDirBrowse;
/* Root List Context Menu items */
private TestMenuItem rootEjectRoot;
@@ -136,6 +138,8 @@ public final class MenuManagerTest {
dirViewInOwner = testMenu.findItem(R.id.dir_menu_view_in_owner);
dirOpenInNewWindow = testMenu.findItem(R.id.dir_menu_open_in_new_window);
dirPasteIntoFolder = testMenu.findItem(R.id.dir_menu_paste_into_folder);
+ mDirExtractHere = testMenu.findItem(R.id.dir_menu_extract_here);
+ mDirBrowse = testMenu.findItem(R.id.dir_menu_browse);
rootEjectRoot = testMenu.findItem(R.id.root_menu_eject_root);
rootOpenInNewWindow = testMenu.findItem(R.id.root_menu_open_in_new_window);
@@ -351,6 +355,8 @@ public final class MenuManagerTest {
mDirDeselectAll.assertDisabledAndInvisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -363,6 +369,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -375,6 +383,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -387,6 +397,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertEnabledAndVisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -398,6 +410,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -423,6 +437,8 @@ public final class MenuManagerTest {
mDirCompress.assertDisabledAndInvisible();
dirRename.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -438,6 +454,8 @@ public final class MenuManagerTest {
dirPasteIntoFolder.assertDisabledAndInvisible();
dirRename.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -451,6 +469,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertEnabledAndVisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -465,6 +485,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertDisabledAndInvisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -478,6 +500,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertEnabledAndVisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test