Merge "Do not set orientation changing to invisible window" into tm-qpr-dev am: b2327bcfa6 am: 9872384a7a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20027104 Change-Id: Ida3eb272f4a3989634f07e35614c47955f28008a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -6012,7 +6012,11 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
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);
|
||||
// WindowsState#reportResized won't tell invisible requested window to redraw,
|
||||
// so do not set it as changing orientation to avoid affecting draw state.
|
||||
if (w.isVisibleRequested()) {
|
||||
w.setOrientationChanging(true);
|
||||
}
|
||||
if (mWindowsFreezingScreen == WINDOWS_FREEZING_SCREENS_NONE) {
|
||||
mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_ACTIVE;
|
||||
// XXX should probably keep timeout from
|
||||
|
||||
@@ -735,6 +735,15 @@ public class WindowStateTests extends WindowTestsBase {
|
||||
assertTrue(mWm.mResizingWindows.contains(startingApp));
|
||||
assertTrue(startingApp.isDrawn());
|
||||
assertFalse(startingApp.getOrientationChanging());
|
||||
|
||||
// Even if the display is frozen, invisible requested window should not be affected.
|
||||
startingApp.mActivityRecord.mVisibleRequested = false;
|
||||
mWm.startFreezingDisplay(0, 0, mDisplayContent);
|
||||
doReturn(true).when(mWm.mPolicy).isScreenOn();
|
||||
startingApp.getWindowFrames().setInsetsChanged(true);
|
||||
startingApp.updateResizingWindowIfNeeded();
|
||||
assertTrue(startingApp.isDrawn());
|
||||
assertFalse(startingApp.getOrientationChanging());
|
||||
}
|
||||
|
||||
@SetupWindows(addWindows = W_ABOVE_ACTIVITY)
|
||||
|
||||
Reference in New Issue
Block a user