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

Commit bf6184a0 authored by Maryam Dehaini's avatar Maryam Dehaini Committed by Android (Google) Code Review
Browse files

Merge "Clear "restore" mode when setting windowing mode" into main

parents 82622573 dd88afd0
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1254,14 +1254,16 @@ class ActivityClientController extends IActivityClientController.Stub {
    private static void executeMultiWindowFullscreenRequest(int fullscreenRequest, Task requester) {
        final int targetWindowingMode;
        if (fullscreenRequest == FULLSCREEN_MODE_REQUEST_ENTER) {
            requester.mMultiWindowRestoreWindowingMode =
                    requester.getRequestedOverrideWindowingMode();
            final int restoreWindowingMode = requester.getRequestedOverrideWindowingMode();
            targetWindowingMode = WINDOWING_MODE_FULLSCREEN;
            requester.setWindowingMode(targetWindowingMode);
            // The restore windowing mode must be set after the windowing mode is set since
            // Task#setWindowingMode resets the restore windowing mode to WINDOWING_MODE_INVALID.
            requester.mMultiWindowRestoreWindowingMode = restoreWindowingMode;
        } else {
            targetWindowingMode = requester.mMultiWindowRestoreWindowingMode;
            requester.mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;
        }
            requester.setWindowingMode(targetWindowingMode);
        }
        if (targetWindowingMode == WINDOWING_MODE_FULLSCREEN) {
            requester.setBounds(null);
        }
+5 −1
Original line number Diff line number Diff line
@@ -4682,9 +4682,10 @@ class Task extends TaskFragment {

    @Override
    public void setWindowingMode(int windowingMode) {
        // Calling Task#setWindowingMode() for leaf task since this is the a specialization of
        // Calling Task#setWindowingMode() for leaf task since this is a specialization of
        // {@link #setWindowingMode(int)} for root task.
        if (!isRootTask()) {
            mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;
            super.setWindowingMode(windowingMode);
            return;
        }
@@ -4728,6 +4729,9 @@ class Task extends TaskFragment {
            return;
        }

        // Reset multi-window restore windowing mode.
        mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;

        final ActivityRecord topActivity = getTopNonFinishingActivity();

        // For now, assume that the root task's windowing mode is what will actually be used