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

Commit cb16408d authored by François Degros's avatar François Degros
Browse files

Control visibility of 'Browse' and 'Extract here' menu items

Putting in place the infrastructure that will control the visibility of
these menu items.

These menu items are not visible yet.

Bug: 400830188
Bug: 400829875
Flag: com.android.documentsui.flags.use_material3
Test: atest DocumentsUIGoogleTests:com.android.documentsui.picker.MenuManagerTest
Test: atest DocumentsUIGoogleTests:com.android.documentsui.files.MenuManagerTest
Change-Id: Ifb8b7803ced6b9ce2927ddc3247455c4edf26455
parent be7cfdfa
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -389,11 +389,11 @@ public abstract class MenuManager {
        Menus.setEnabledAndVisible(extractTo, false);
    }

    protected void updateExtractHere(@NonNull MenuItem it, SelectionDetails selection) {
    protected void updateExtractHere(@NonNull MenuItem it, @NonNull SelectionDetails selection) {
        Menus.setEnabledAndVisible(it, false);
    }

    protected void updateBrowse(@NonNull MenuItem it, SelectionDetails selection) {
    protected void updateBrowse(@NonNull MenuItem it, @NonNull SelectionDetails selection) {
        Menus.setEnabledAndVisible(it, false);
    }

@@ -450,6 +450,10 @@ public abstract class MenuManager {
        boolean canOpen();

        boolean canViewInOwner();

        default boolean isArchive() {
            return false;
        }
    }

    public static class DirectoryDetails {
+11 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.selection.SelectionTracker;

@@ -211,6 +212,16 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
        Menus.setEnabledAndVisible(extractTo, enabled);
    }

    @Override
    protected void updateExtractHere(@NonNull MenuItem it, @NonNull SelectionDetails selection) {
        Menus.setEnabledAndVisible(it, selection.isArchive());
    }

    @Override
    protected void updateBrowse(@NonNull MenuItem it, @NonNull SelectionDetails selection) {
        Menus.setEnabledAndVisible(it, selection.isArchive());
    }

    @Override
    protected void updatePasteInto(MenuItem pasteInto, SelectionDetails selectionDetails) {
        Menus.setEnabledAndVisible(pasteInto,