Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6d6324e authored by Steve McKay's avatar Steve McKay
Browse files

Cleanup "inspect" menu management.

Followup to linben@'s comments in ag/2698755.

Test: Update MenuManager tests.
Change-Id: I65092dcf8258383b579873d33d32130b2440b8e3
parent 6fc03e95
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ public abstract class MenuManager {
                menu.findItem(R.id.option_menu_list));
        updateAdvanced(menu.findItem(R.id.option_menu_advanced));
        updateDebug(menu.findItem(R.id.option_menu_debug));
        updateInspector(menu.findItem(R.id.option_menu_inspect));
        updateInspect(menu.findItem(R.id.option_menu_inspect));
        Menus.disableHiddenItems(menu);
    }

@@ -94,8 +94,7 @@ public abstract class MenuManager {
        // Pickers don't have any context menu at this moment.
    }

    public void inflateContextMenuForContainer(
            Menu menu, MenuInflater inflater, SelectionDetails selectionDetails) {
    public void inflateContextMenuForContainer(Menu menu, MenuInflater inflater) {
        throw new UnsupportedOperationException("Pickers don't allow context menu.");
    }

@@ -183,13 +182,12 @@ public abstract class MenuManager {
    }

    /**
     * @param selectionDetails
     * @see DirectoryFragment#onCreateContextMenu
     *
     * Called when user tries to generate a context menu anchored to an empty pane.
     */
    @VisibleForTesting
    public void updateContextMenuForContainer(Menu menu, SelectionDetails selectionDetails) {
    public void updateContextMenuForContainer(Menu menu) {
        MenuItem paste = menu.findItem(R.id.dir_menu_paste_from_clipboard);
        MenuItem selectAll = menu.findItem(R.id.dir_menu_select_all);
        MenuItem createDir = menu.findItem(R.id.dir_menu_create_dir);
@@ -198,7 +196,7 @@ public abstract class MenuManager {
        paste.setEnabled(mDirDetails.hasItemsToPaste() && mDirDetails.canCreateDoc());
        updateSelectAll(selectAll);
        updateCreateDir(createDir);
        updateInspect(inspect, selectionDetails);
        updateInspect(inspect);
    }

    /**
@@ -284,7 +282,7 @@ public abstract class MenuManager {
     * This method is called for standard activity option menu as opposed
     * to when there is a selection.
     */
    protected void updateInspector(MenuItem inspector) {
    protected void updateInspect(MenuItem inspector) {
        inspector.setVisible(false);
    }

+1 −2
Original line number Diff line number Diff line
@@ -450,8 +450,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
            // TODO: inject DirectoryDetails into MenuManager constructor
            // Since both classes are supplied by Activity and created
            // at the same time.
            mInjector.menuManager.inflateContextMenuForContainer(
                    menu, inflater, mSelectionMetadata);
            mInjector.menuManager.inflateContextMenuForContainer(menu, inflater);
        } else {
            mInjector.menuManager.inflateContextMenuForDocs(
                    menu, inflater, mSelectionMetadata);
+8 −9
Original line number Diff line number Diff line
@@ -111,10 +111,9 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
    }

    @Override
    public void inflateContextMenuForContainer(
            Menu menu, MenuInflater inflater, SelectionDetails selectionDetails) {
    public void inflateContextMenuForContainer(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.container_context_menu, menu);
        updateContextMenuForContainer(menu, selectionDetails);
        updateContextMenuForContainer(menu);
    }

    @Override
@@ -268,16 +267,16 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
    }

    @Override
    protected void updateInspector(MenuItem inspector) {
        inspector.setVisible(mFeatures.isInspectorEnabled());
        inspector.setEnabled(mFeatures.isInspectorEnabled() && !mState.stack.isRecents());
    protected void updateInspect(MenuItem inspect) {
        inspect.setVisible(mFeatures.isInspectorEnabled());
        inspect.setEnabled(mFeatures.isInspectorEnabled() && !mState.stack.isRecents());
    }

    @Override
    protected void updateInspect(MenuItem inspector, SelectionDetails selectionDetails) {
    protected void updateInspect(MenuItem inspect, SelectionDetails selectionDetails) {
        boolean visible = mFeatures.isInspectorEnabled();
        inspector.setVisible(visible);
        inspector.setEnabled(visible && selectionDetails.size() <= 1);
        inspect.setVisible(visible);
        inspect.setEnabled(visible && selectionDetails.size() <= 1);
    }

    @Override
+12 −13
Original line number Diff line number Diff line
@@ -472,7 +472,7 @@ public final class MenuManagerTest {

    @Test
    public void testContextMenu_EmptyArea() {
        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -487,7 +487,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = false;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -502,7 +502,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = false;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -517,7 +517,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -531,7 +531,7 @@ public final class MenuManagerTest {
    public void testContextMenu_EmptyArea_CanCreateDirectory() {
        dirDetails.canCreateDirectory = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -609,6 +609,13 @@ public final class MenuManagerTest {
        dirDelete.assertVisible();
    }

    @Test
    public void testContextMenu_CanInspectContainer() {
        mgr.updateContextMenuForContainer(testMenu);
        dirInspect.assertVisible();
        dirInspect.assertEnabled();
    }

    @Test
    public void testContextMenu_OnWritableDirectory_NothingToPaste() {
        selectionDetails.canPasteInto = true;
@@ -681,14 +688,6 @@ public final class MenuManagerTest {
        dirInspect.assertEnabled();
    }

    @Test
    public void testContextMenu_CanInspectNoSelection() {
        selectionDetails.size = 0;
        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        dirInspect.assertVisible();
        dirInspect.assertEnabled();
    }

    @Test
    public void testRootContextMenu() {
        testRootInfo.flags = Root.FLAG_SUPPORTS_CREATE;
+5 −5
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ public final class MenuManagerTest {
        dirDetails.canCreateDoc = false;
        dirDetails.canCreateDirectory = false;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -252,7 +252,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = false;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -267,7 +267,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = false;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -282,7 +282,7 @@ public final class MenuManagerTest {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();
@@ -296,7 +296,7 @@ public final class MenuManagerTest {
    public void testContextMenu_EmptyArea_CanCreateDirectory() {
        dirDetails.canCreateDirectory = true;

        mgr.updateContextMenuForContainer(testMenu, selectionDetails);
        mgr.updateContextMenuForContainer(testMenu);

        dirSelectAll.assertVisible();
        dirSelectAll.assertEnabled();