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

Commit 447e938e authored by Massimo Carli's avatar Massimo Carli Committed by Android (Google) Code Review
Browse files

Merge "Remove LetterboxEdu in DesktopWindowing" into main

parents f1e8a993 efd04186
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -788,10 +788,7 @@ public class CompatUIController implements OnDisplaysChangedListener,
            mActiveCompatLayouts.remove(taskId);
        }

        if (mActiveLetterboxEduLayout != null && mActiveLetterboxEduLayout.getTaskId() == taskId) {
            mActiveLetterboxEduLayout.release();
            mActiveLetterboxEduLayout = null;
        }
        removeLetterboxEdu(taskId);

        final RestartDialogWindowManager restartLayout =
                mTaskIdToRestartDialogWindowManagerMap.get(taskId);
@@ -813,6 +810,16 @@ public class CompatUIController implements OnDisplaysChangedListener,
        }
    }

    @VisibleForTesting
    void removeLetterboxEdu(int taskId) {
        // When in desktop windowing the dialog will be removed in any case.
        if (mActiveLetterboxEduLayout != null && (mActiveLetterboxEduLayout.getTaskId() == taskId
                || mIsInDesktopMode)) {
            mActiveLetterboxEduLayout.release();
            mActiveLetterboxEduLayout = null;
        }
    }

    private Context getOrCreateDisplayContext(int displayId) {
        if (displayId == Display.DEFAULT_DISPLAY) {
            return mContext;
+31 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ import java.util.Optional;
public class CompatUIControllerTest extends ShellTestCase {
    private static final int DISPLAY_ID = 0;
    private static final int TASK_ID = 12;
    private static final int TASK_ID_2 = 18;

    private CompatUIController mController;
    private ShellInit mShellInit;
@@ -727,6 +728,36 @@ public class CompatUIControllerTest extends ShellTestCase {
        verify(mController).removeLayouts(taskInfo.taskId);
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_APP_COMPAT_UI_FRAMEWORK)
    @EnableFlags(Flags.FLAG_SKIP_COMPAT_UI_EDUCATION_IN_DESKTOP_MODE)
    public void testUpdateActiveTaskInfo_alwaysRemoveLetterboxEdu() {
        TaskInfo taskInfo = createTaskInfo(DISPLAY_ID, TASK_ID, /* hasSizeCompat= */ true);

        // When not in Desktop Mode the LetterboxEdu is removed only if the taskId is the one used
        // when created.
        when(mDesktopUserRepositories.getCurrent().isAnyDeskActive(DISPLAY_ID)).thenReturn(false);

        mController.onCompatInfoChanged(new CompatUIInfo(taskInfo, mMockTaskListener));
        mController.removeLetterboxEdu(TASK_ID_2);
        verify(mMockLetterboxEduLayout, never()).release();

        mController.onCompatInfoChanged(new CompatUIInfo(taskInfo, mMockTaskListener));
        mController.removeLetterboxEdu(TASK_ID);
        verify(mMockLetterboxEduLayout).release();

        // When in Desktop Mode the LetterboxEdu is always removed
        when(mDesktopUserRepositories.getCurrent().isAnyDeskActive(DISPLAY_ID)).thenReturn(true);

        mController.onCompatInfoChanged(new CompatUIInfo(taskInfo, mMockTaskListener));
        mController.removeLetterboxEdu(TASK_ID);
        verify(mMockLetterboxEduLayout).release();

        mController.onCompatInfoChanged(new CompatUIInfo(taskInfo, mMockTaskListener));
        mController.removeLetterboxEdu(TASK_ID_2);
        verify(mMockLetterboxEduLayout).release();
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_APP_COMPAT_UI_FRAMEWORK)
    @DisableFlags(Flags.FLAG_SKIP_COMPAT_UI_EDUCATION_IN_DESKTOP_MODE)