Loading src/com/android/documentsui/MenuManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); } Loading src/com/android/documentsui/util/FlagUtils.kt +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class FlagUtils { @JvmStatic fun isZipNgFlagEnabled(): Boolean { return Flags.zipNgRo() return Flags.zipNgRo() && Flags.useMaterial3() } @JvmStatic Loading tests/common/com/android/documentsui/testing/TestMenu.java +4 −3 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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, Loading Loading @@ -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)); Loading @@ -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); } Loading tests/common/com/android/documentsui/testing/TestMenuItem.java +6 −8 Original line number Diff line number Diff line Loading @@ -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)}. */ public abstract class TestMenuItem implements MenuItem { boolean enabled; Loading tests/unit/com/android/documentsui/files/MenuManagerTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -545,6 +549,8 @@ public final class MenuManagerTest { mDirDeselectAll.assertDisabledAndInvisible(); dirPasteFromClipboard.assertDisabledAndInvisible(); dirCreateDir.assertDisabledAndInvisible(); mDirExtractHere.assertDisabledAndInvisible(); mDirBrowse.assertDisabledAndInvisible(); } @Test Loading Loading @@ -616,6 +622,8 @@ public final class MenuManagerTest { dirRename.assertDisabledAndInvisible(); dirCreateDir.assertEnabledAndVisible(); dirDelete.assertDisabledAndInvisible(); mDirExtractHere.assertDisabledAndInvisible(); mDirBrowse.assertDisabledAndInvisible(); } @Test Loading Loading
src/com/android/documentsui/MenuManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); } Loading
src/com/android/documentsui/util/FlagUtils.kt +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class FlagUtils { @JvmStatic fun isZipNgFlagEnabled(): Boolean { return Flags.zipNgRo() return Flags.zipNgRo() && Flags.useMaterial3() } @JvmStatic Loading
tests/common/com/android/documentsui/testing/TestMenu.java +4 −3 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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, Loading Loading @@ -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)); Loading @@ -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); } Loading
tests/common/com/android/documentsui/testing/TestMenuItem.java +6 −8 Original line number Diff line number Diff line Loading @@ -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)}. */ public abstract class TestMenuItem implements MenuItem { boolean enabled; Loading
tests/unit/com/android/documentsui/files/MenuManagerTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -545,6 +549,8 @@ public final class MenuManagerTest { mDirDeselectAll.assertDisabledAndInvisible(); dirPasteFromClipboard.assertDisabledAndInvisible(); dirCreateDir.assertDisabledAndInvisible(); mDirExtractHere.assertDisabledAndInvisible(); mDirBrowse.assertDisabledAndInvisible(); } @Test Loading Loading @@ -616,6 +622,8 @@ public final class MenuManagerTest { dirRename.assertDisabledAndInvisible(); dirCreateDir.assertEnabledAndVisible(); dirDelete.assertDisabledAndInvisible(); mDirExtractHere.assertDisabledAndInvisible(); mDirBrowse.assertDisabledAndInvisible(); } @Test Loading