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

Commit fd8d3bd2 authored by Christian Wahl (xWF)'s avatar Christian Wahl (xWF) Committed by Android (Google) Code Review
Browse files

Merge changes from topic "revert-32311744-requestFullscreenBugfix-IAFIYQPNEM" into main

* changes:
  Revert "Do not clear Task#mMultiWindowRestoreWindowingMode on ex..."
  Revert "Test fix for request fullscreen bugfix"
parents 143ca52c f032bf5d
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -1750,16 +1750,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            Objects.requireNonNull(tdaInfo);
            final int displayWindowingMode =
                    tdaInfo.configuration.windowConfiguration.getWindowingMode();
            final int targetWindowingMode;
            if (DesktopModeFlags.ENABLE_REQUEST_FULLSCREEN_BUGFIX.isTrue()) {
                // TODO(b/404659187): set windowing mode to undefined for non-freeform displays
                targetWindowingMode = WINDOWING_MODE_FULLSCREEN;
            } else {
            // In freeform-first env, we need to explicitly set the windowing mode when leaving
            // the split-screen to be fullscreen.
                targetWindowingMode = displayWindowingMode == WINDOWING_MODE_FREEFORM
            final int targetWindowingMode = displayWindowingMode == WINDOWING_MODE_FREEFORM
                    ? WINDOWING_MODE_FULLSCREEN : WINDOWING_MODE_UNDEFINED;
            }
            toTopStage.doForAllChildTaskInfos(taskInfo -> {
                wct.setWindowingMode(taskInfo.token, targetWindowingMode);
            });
+1 −2
Original line number Diff line number Diff line
@@ -548,7 +548,6 @@ public class StageCoordinatorTests extends ShellTestCase {
    }

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_REQUEST_FULLSCREEN_BUGFIX})
    public void testDismiss_fullscreenDisplay() {
        when(mStageCoordinator.isSplitActive()).thenReturn(true);

@@ -556,7 +555,7 @@ public class StageCoordinatorTests extends ShellTestCase {
        mStageCoordinator.prepareExitSplitScreen(STAGE_TYPE_MAIN, wct, EXIT_REASON_DRAG_DIVIDER);

        assertEquals(wct.getChanges().get(mMainChildTaskInfo.token.asBinder()).getWindowingMode(),
                WINDOWING_MODE_FULLSCREEN);
                WINDOWING_MODE_UNDEFINED);
    }

    @Test
+2 −14
Original line number Diff line number Diff line
@@ -4594,7 +4594,7 @@ class Task extends TaskFragment {
        // Calling Task#setWindowingMode() for leaf task since this is a specialization of
        // {@link #setWindowingMode(int)} for root task.
        if (!isRootTask()) {
            clearRestoreWindowingMode(windowingMode);
            mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;
            super.setWindowingMode(windowingMode);
            return;
        }
@@ -4602,18 +4602,6 @@ class Task extends TaskFragment {
        setWindowingModeInner(windowingMode, false /* creating */);
    }

    /**
     * Clears {@link #mMultiWindowRestoreWindowingMode} if the windowing mode has changed.
     *
     * @param windowingMode the windowing mode being requested
     */
    private void clearRestoreWindowingMode(int windowingMode) {
        if (!DesktopModeFlags.ENABLE_REQUEST_FULLSCREEN_BUGFIX.isTrue()
                || windowingMode != getWindowingMode()) {
            mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;
        }
    }

    /**
     * Version of {@link #setWindowingMode(int)} for root tasks.
     *
@@ -4663,7 +4651,7 @@ class Task extends TaskFragment {
        }

        // Reset multi-window restore windowing mode.
        clearRestoreWindowingMode(windowingMode);
        mMultiWindowRestoreWindowingMode = INVALID_WINDOWING_MODE;

        final ActivityRecord topActivity = getTopNonFinishingActivity();