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

Commit 771f7285 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Determine visibility of the "Extract all" menu item" into main

parents fee19dee 5d24d067
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -27,11 +27,13 @@ import android.view.View;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;

import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Menus;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.dirlist.DirectoryFragment;
import com.android.documentsui.flags.Flags;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.sidebar.RootsFragment;

@@ -91,6 +93,9 @@ public abstract class MenuManager {
            return;
        }
        updateCreateDir(mOptionMenu.findItem(R.id.option_menu_create_dir));
        if (Flags.zipNg()) {
            updateExtractAll(mOptionMenu.findItem(R.id.option_menu_extract_all));
        }
        updateSettings(mOptionMenu.findItem(R.id.option_menu_settings));
        updateSelectAll(mOptionMenu.findItem(R.id.option_menu_select_all));
        updateNewWindow(mOptionMenu.findItem(R.id.option_menu_new_window));
@@ -397,6 +402,10 @@ public abstract class MenuManager {
        Menus.setEnabledAndVisible(launcher, false);
    }

    protected void updateExtractAll(MenuItem it) {
        Menus.setEnabledAndVisible(it, false);
    }

    protected abstract void updateSelectAll(MenuItem selectAll);
    protected abstract void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails);
    protected abstract void updateDeselectAll(
@@ -455,6 +464,12 @@ public abstract class MenuManager {
            return mActivity.isInRecents();
        }

        /** Is the current directory showing the contents of an archive? */
        public boolean isInArchive() {
            final DocumentInfo dir = mActivity.getCurrentDirectory();
            return dir != null && ArchivesProvider.AUTHORITY.equals(dir.authority);
        }

        public boolean canCreateDirectory() {
            return mActivity.canCreateDirectory();
        }
+5 −0
Original line number Diff line number Diff line
@@ -224,6 +224,11 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
                && mDirDetails.hasItemsToPaste());
    }

    @Override
    protected void updateExtractAll(MenuItem it) {
        Menus.setEnabledAndVisible(it, mDirDetails.isInArchive());
    }

    @Override
    protected void updateSelectAll(MenuItem selectAll) {
        Menus.setEnabledAndVisible(selectAll, true);
+6 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.documentsui.MenuManager.DirectoryDetails;
public class TestDirectoryDetails extends DirectoryDetails {

    public boolean isInRecents;
    public boolean isInArchive;
    public boolean hasRootSettings;
    public boolean hasItemsToPaste;
    public boolean canCreateDoc;
@@ -49,6 +50,11 @@ public class TestDirectoryDetails extends DirectoryDetails {
        return isInRecents;
    }

    @Override
    public boolean isInArchive() {
        return isInArchive;
    }

    @Override
    public boolean canCreateDoc() {
        return canCreateDoc;
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ public abstract class TestMenu implements Menu {
                R.id.option_menu_debug,
                R.id.option_menu_new_window,
                R.id.option_menu_create_dir,
                R.id.option_menu_extract_all,
                R.id.option_menu_select_all,
                R.id.option_menu_settings,
                R.id.option_menu_inspect,
+2 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ public final class MenuManagerTest {
    private TestMenuItem optionSort;
    private TestMenuItem mOptionLauncher;
    private TestMenuItem mOptionShowHiddenFiles;
    private TestMenuItem mOptionExtractAll;

    /* Sub Option Menu items */
    private TestMenuItem subOptionGrid;
@@ -185,6 +186,7 @@ public final class MenuManagerTest {
        optionSort = testMenu.findItem(R.id.option_menu_sort);
        mOptionLauncher = testMenu.findItem(R.id.option_menu_launcher);
        mOptionShowHiddenFiles = testMenu.findItem(R.id.option_menu_show_hidden_files);
        mOptionExtractAll = testMenu.findItem(R.id.option_menu_extract_all);

        // Menu actions on root title row.
        subOptionGrid = testMenu.findItem(R.id.sub_menu_grid);
Loading