Loading services/core/java/com/android/server/wm/ActivityRecord.java +3 −1 Original line number Diff line number Diff line Loading @@ -8418,7 +8418,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A startFreezingScreenLocked(globalChanges); } forceNewConfig = false; preserveWindow &= isResizeOnlyChange(changes); // Do not preserve window if it is freezing screen because the original window won't be // able to update drawn state that causes freeze timeout. preserveWindow &= isResizeOnlyChange(changes) && !mFreezingScreen; final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged()); if (hasResizeChange) { final boolean isDragResizing = task.isDragResizing(); Loading services/core/java/com/android/server/wm/DisplayContent.java +6 −0 Original line number Diff line number Diff line Loading @@ -3139,6 +3139,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mScreenRotationAnimation; } /** If the display is in transition, there should be a screenshot covering it. */ @Override boolean inTransition() { return mScreenRotationAnimation != null || super.inTransition(); } @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { Loading services/core/java/com/android/server/wm/ScreenRotationAnimation.java +6 −1 Original line number Diff line number Diff line Loading @@ -729,7 +729,12 @@ class ScreenRotationAnimation { mScreenshotRotationAnimator = null; mRotateScreenAnimator = null; mService.mAnimator.mBulkUpdateParams |= WindowSurfacePlacer.SET_UPDATE_ROTATION; if (mDisplayContent.getRotationAnimation() == ScreenRotationAnimation.this) { // It also invokes kill(). mDisplayContent.setRotationAnimation(null); } else { kill(); } mService.updateRotation(false, false); } } Loading services/core/java/com/android/server/wm/TaskFragment.java +2 −0 Original line number Diff line number Diff line Loading @@ -2014,6 +2014,8 @@ class TaskFragment extends WindowContainer<WindowContainer> { || mDisplayContent == null || mTaskFragmentOrganizer == null || getSurfaceControl() == null // The change transition will be covered by display. || mDisplayContent.inTransition() || !isVisible()) { return false; } Loading services/core/java/com/android/server/wm/WindowContainer.java +4 −0 Original line number Diff line number Diff line Loading @@ -987,6 +987,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return mDisplayContent != null && mDisplayContent.mChangingContainers.contains(this); } boolean inTransition() { return mWmService.mAtmService.getTransitionController().inTransition(this); } void sendAppVisibilityToClients() { for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer wc = mChildren.get(i); Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +3 −1 Original line number Diff line number Diff line Loading @@ -8418,7 +8418,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A startFreezingScreenLocked(globalChanges); } forceNewConfig = false; preserveWindow &= isResizeOnlyChange(changes); // Do not preserve window if it is freezing screen because the original window won't be // able to update drawn state that causes freeze timeout. preserveWindow &= isResizeOnlyChange(changes) && !mFreezingScreen; final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged()); if (hasResizeChange) { final boolean isDragResizing = task.isDragResizing(); Loading
services/core/java/com/android/server/wm/DisplayContent.java +6 −0 Original line number Diff line number Diff line Loading @@ -3139,6 +3139,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mScreenRotationAnimation; } /** If the display is in transition, there should be a screenshot covering it. */ @Override boolean inTransition() { return mScreenRotationAnimation != null || super.inTransition(); } @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { Loading
services/core/java/com/android/server/wm/ScreenRotationAnimation.java +6 −1 Original line number Diff line number Diff line Loading @@ -729,7 +729,12 @@ class ScreenRotationAnimation { mScreenshotRotationAnimator = null; mRotateScreenAnimator = null; mService.mAnimator.mBulkUpdateParams |= WindowSurfacePlacer.SET_UPDATE_ROTATION; if (mDisplayContent.getRotationAnimation() == ScreenRotationAnimation.this) { // It also invokes kill(). mDisplayContent.setRotationAnimation(null); } else { kill(); } mService.updateRotation(false, false); } } Loading
services/core/java/com/android/server/wm/TaskFragment.java +2 −0 Original line number Diff line number Diff line Loading @@ -2014,6 +2014,8 @@ class TaskFragment extends WindowContainer<WindowContainer> { || mDisplayContent == null || mTaskFragmentOrganizer == null || getSurfaceControl() == null // The change transition will be covered by display. || mDisplayContent.inTransition() || !isVisible()) { return false; } Loading
services/core/java/com/android/server/wm/WindowContainer.java +4 −0 Original line number Diff line number Diff line Loading @@ -987,6 +987,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return mDisplayContent != null && mDisplayContent.mChangingContainers.contains(this); } boolean inTransition() { return mWmService.mAtmService.getTransitionController().inTransition(this); } void sendAppVisibilityToClients() { for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer wc = mChildren.get(i); Loading