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

Commit 3ea951ab authored by android-build-team Robot's avatar android-build-team Robot Committed by android-build-merger
Browse files

Merge "Fix crash when showing inspect menu of invalid provider" into pi-dev

am: 8f606029

Change-Id: I3b692472b24f98a5c0061fb18daddc0de8a9be14
parents f49fb7af 8f606029
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -268,8 +268,11 @@ public final class MenuManager extends com.android.documentsui.MenuManager {

    @Override
    protected void updateInspect(MenuItem inspect) {
        inspect.setVisible(mFeatures.isInspectorEnabled());
        inspect.setEnabled(mFeatures.isInspectorEnabled() && !mState.stack.isRecents());
        boolean visible = mFeatures.isInspectorEnabled();
        inspect.setVisible(visible);
        // use a null check w/ peek instead of isEmpty since
        // DocumentStack accepts null values (not sure why).
        inspect.setEnabled(visible && mState.stack.peek() != null);
    }

    @Override
+26 −4
Original line number Diff line number Diff line
@@ -191,6 +191,7 @@ public final class MenuManagerTest {

        testRootInfo = new RootInfo();
        testDocInfo = new DocumentInfo();
        state.stack.push(testDocInfo);
    }

    private Uri getUriFromModelId(String id) {
@@ -360,7 +361,7 @@ public final class MenuManagerTest {
    }

    @Test
    public void testActionMenu_InspectorEnabledForSingleSelection() {
    public void testActionMenu_Inspector_EnabledForSingleSelection() {
        features.inspector = true;
        selectionDetails.size = 1;
        mgr.updateActionMenu(testMenu, selectionDetails);
@@ -370,7 +371,7 @@ public final class MenuManagerTest {
    }

    @Test
    public void testActionMenu_InspectorDisabledForMultiSelection() {
    public void testActionMenu_Inspector_DisabledForMultiSelection() {
        features.inspector = true;
        selectionDetails.size = 2;
        mgr.updateActionMenu(testMenu, selectionDetails);
@@ -417,7 +418,7 @@ public final class MenuManagerTest {
    }

    @Test
    public void testOptionMenu_InspectorAvailable() {
    public void testOptionMenu_Inspector_VisibleAndEnabled() {
        features.inspector = true;
        mgr.updateOptionMenu(testMenu);
        optionInspector.assertVisible();
@@ -425,7 +426,7 @@ public final class MenuManagerTest {
    }

    @Test
    public void testOptionMenu_InspectorDisabledInRecentsFolder() {
    public void testOptionMenu_Inspector_DisabledInRecentsFolder() {
        features.inspector = true;

        // synthesize a fake recents root. Not setting an authority or id == recents.
@@ -437,6 +438,27 @@ public final class MenuManagerTest {
        optionInspector.assertDisabled();
    }

    @Test
    public void testOptionMenu_Inspector_DisabledForEmptyStack() {
        features.inspector = true;
        state.stack.reset();  // unset cwd
        mgr.updateOptionMenu(testMenu);

        optionInspector.assertVisible();
        optionInspector.assertDisabled();
    }

    @Test
    public void testOptionMenu_Inspector_DisabledForNullDirectory() {
        features.inspector = true;
        state.stack.reset();
        state.stack.push(null);
        mgr.updateOptionMenu(testMenu);

        optionInspector.assertVisible();
        optionInspector.assertDisabled();
    }

    @Test
    public void testInflateContextMenu_Files() {
        TestMenuInflater inflater = new TestMenuInflater();