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

Commit bf9e3a86 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Do not set orientation changing just for screen off" into tm-qpr-dev...

Merge "Do not set orientation changing just for screen off" into tm-qpr-dev am: 5eacb19b am: bd20b588

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19193989



Change-Id: I1383e40c2b3ec772e74354326bee8d9721d75eb6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 420dbb87 bd20b588
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1020,7 +1020,7 @@ public class WindowManagerService extends IWindowManager.Stub
    private int mExitAnimId, mEnterAnimId;

    /** The display that the rotation animation is applying to. */
    private int mFrozenDisplayId;
    private int mFrozenDisplayId = INVALID_DISPLAY;

    /** Skip repeated ActivityRecords initialization. Note that AppWindowsToken's version of this
     * is a long initialized to Long.MIN_VALUE so that it doesn't match this value on startup. */
@@ -5962,10 +5962,10 @@ public class WindowManagerService extends IWindowManager.Stub
    }

    void makeWindowFreezingScreenIfNeededLocked(WindowState w) {
        // If the screen is currently frozen or off, then keep
        // it frozen/off until this window draws at its new
        // orientation.
        if (!w.mToken.okToDisplay() && mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
        // If the screen is currently frozen, then keep it frozen until this window draws at its
        // new orientation.
        if (mFrozenDisplayId != INVALID_DISPLAY && mFrozenDisplayId == w.getDisplayId()
                && mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
            ProtoLog.v(WM_DEBUG_ORIENTATION, "Changing surface while display frozen: %s", w);
            w.setOrientationChanging(true);
            if (mWindowsFreezingScreen == WINDOWS_FREEZING_SCREENS_NONE) {
+11 −0
Original line number Diff line number Diff line
@@ -720,6 +720,17 @@ public class WindowStateTests extends WindowTestsBase {
        outWaitingForDrawn.clear();
        invisibleApp.requestDrawIfNeeded(outWaitingForDrawn);
        assertTrue(outWaitingForDrawn.isEmpty());

        // Drawn state should not be changed for insets change when screen is off.
        spyOn(mWm.mPolicy);
        doReturn(false).when(mWm.mPolicy).isScreenOn();
        makeWindowVisibleAndDrawn(startingApp);
        startingApp.getConfiguration().orientation = 0; // Reset to be the same as last reported.
        startingApp.getWindowFrames().setInsetsChanged(true);
        startingApp.updateResizingWindowIfNeeded();
        assertTrue(mWm.mResizingWindows.contains(startingApp));
        assertTrue(startingApp.isDrawn());
        assertFalse(startingApp.getOrientationChanging());
    }

    @UseTestDisplay(addWindows = W_ABOVE_ACTIVITY)