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

Commit e7a6db7e authored by Garfield Tan's avatar Garfield Tan Committed by android-build-merger
Browse files

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

am: be6d1e03

Change-Id: I12b32e60b0f67efbe16b14be7f476c1065481adf
parents 8e35e1c7 be6d1e03
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;