diff options
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 |