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

Commit be6d1e03 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make sure shares and deletes are enabled after they're changed to be visible." into arc-apps

parents 115f7e9b bcc79b35
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -74,7 +74,6 @@ public abstract class MenuManager {
        updateSelectAll(menu.findItem(R.id.menu_select_all));
        updateNewWindow(menu.findItem(R.id.menu_new_window));
        updateModePicker(menu.findItem(R.id.menu_grid), menu.findItem(R.id.menu_list));
        // Sort menu item is managed by SortMenuManager
        updateAdvanced(menu.findItem(R.id.menu_advanced));

        Menus.disableHiddenItems(menu);
+19 −5
Original line number Diff line number Diff line
@@ -133,7 +133,9 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateSettings(MenuItem settings) {
        settings.setVisible(mDirDetails.hasRootSettings());
        boolean enabled = mDirDetails.hasRootSettings();
        settings.setVisible(enabled);
        settings.setEnabled(enabled);
    }

    @Override
@@ -143,18 +145,21 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateOpenInContextMenu(MenuItem open, SelectionDetails selectionDetails) {
        open.setVisible(true);
        open.setEnabled(selectionDetails.size() == 1
                && !selectionDetails.containsPartialFiles());
    }

    @Override
    protected void updateOpenWith(MenuItem openWith, SelectionDetails selectionDetails) {
        openWith.setVisible(true);
        openWith.setEnabled(selectionDetails.canOpenWith());
    }

    @Override
    protected void updateOpenInNewWindow(
            MenuItem openInNewWindow, SelectionDetails selectionDetails) {
        openInNewWindow.setVisible(true);
        openInNewWindow.setEnabled(selectionDetails.size() == 1
            && !selectionDetails.containsPartialFiles());
    }
@@ -187,16 +192,20 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateExtractTo(MenuItem extractTo, SelectionDetails selectionDetails) {
        extractTo.setVisible(selectionDetails.canExtract());
        boolean enabled = selectionDetails.canExtract();
        extractTo.setVisible(enabled);
        extractTo.setEnabled(enabled);
    }

    @Override
    protected void updatePasteInto(MenuItem pasteInto, SelectionDetails selectionDetails) {
        pasteInto.setVisible(true);
        pasteInto.setEnabled(selectionDetails.canPasteInto() && mDirDetails.hasItemsToPaste());
    }

    @Override
    protected void updatePasteInto(MenuItem pasteInto, RootInfo root, DocumentInfo docInfo) {
        pasteInto.setVisible(true);
        pasteInto.setEnabled(root.supportsCreate()
                && docInfo != null
                && docInfo.isCreateSupported()
@@ -206,6 +215,7 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
    @Override
    protected void updateSelectAll(MenuItem selectAll) {
        selectAll.setVisible(true);
        selectAll.setEnabled(true);
    }

    @Override
@@ -216,14 +226,18 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateShare(MenuItem share, SelectionDetails selectionDetails) {
        share.setVisible(!selectionDetails.containsDirectories()
        boolean enabled = !selectionDetails.containsDirectories()
                && !selectionDetails.containsPartialFiles()
                && !selectionDetails.canExtract());
                && !selectionDetails.canExtract();
        share.setVisible(enabled);
        share.setEnabled(enabled);
    }

    @Override
    protected void updateDelete(MenuItem delete, SelectionDetails selectionDetails) {
        delete.setVisible(selectionDetails.canDelete());
        boolean enabled = selectionDetails.canDelete();
        delete.setVisible(enabled);
        delete.setEnabled(enabled);
    }

    @Override
+3 −1
Original line number Diff line number Diff line
@@ -74,7 +74,9 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateSelectAll(MenuItem selectAll) {
        selectAll.setVisible(mState.allowMultiple);
        boolean enabled = mState.allowMultiple;
        selectAll.setVisible(enabled);
        selectAll.setEnabled(enabled);
    }

    @Override
+26 −0
Original line number Diff line number Diff line
@@ -191,6 +191,20 @@ public final class MenuManagerTest {
        moveTo.assertDisabled();
    }

    @Test
    public void testActionMenu_changeToCanDelete() {
        selectionDetails.canDelete = false;
        mgr.updateActionMenu(testMenu, selectionDetails);

        selectionDetails.canDelete = true;
        mgr.updateActionMenu(testMenu, selectionDetails);

        delete.assertVisible();
        delete.assertEnabled();
        moveTo.assertVisible();
        moveTo.assertEnabled();
    }

    @Test
    public void testActionMenu_containsDirectory() {
        selectionDetails.containDirectories = true;
@@ -200,6 +214,18 @@ public final class MenuManagerTest {
        share.assertInvisible();
    }

    @Test
    public void testActionMenu_removesDirectory() {
        selectionDetails.containDirectories = true;
        mgr.updateActionMenu(testMenu, selectionDetails);

        selectionDetails.containDirectories = false;
        mgr.updateActionMenu(testMenu, selectionDetails);

        share.assertVisible();
        share.assertEnabled();
    }

    @Test
    public void testActionMenu_cantExtract() {
        selectionDetails.canExtract = false;