diff options
| author | 2019-08-12 21:51:20 -0700 | |
|---|---|---|
| committer | 2019-08-12 21:51:20 -0700 | |
| commit | c8f1c61a62523fcfb1849aa5831da2ecabf12f8b (patch) | |
| tree | 9ea9e339a655288b216ff8457f88c8ae7c3cb291 | |
| parent | 433441998b652c068fef36e5ff9c68c1aa2081f0 (diff) | |
| parent | 669b8963f654defd3e5df564d72a6d6e8b2b3c92 (diff) | |
Merge "Freezing screen when dismiss pip if orientation is going to change." into qt-r1-dev am: 41b006d8d6
am: 669b8963f6
Change-Id: I7e2222f3c936aa858f606ff0a2abe78d9a4c4448
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index b33f23cfdf4e..c5c53d8ba4ca 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -5651,13 +5651,20 @@ class ActivityStack extends ConfigurationContainer { void animateResizePinnedStack(Rect sourceHintBounds, Rect toBounds, int animationDuration, boolean fromFullscreen) { if (!inPinnedWindowingMode()) return; - if (skipResizeAnimation(toBounds == null /* toFullscreen */)) { - mService.moveTasksToFullscreenStack(mStackId, true /* onTop */); - } else { - if (getTaskStack() == null) return; - getTaskStack().animateResizePinnedStack(toBounds, sourceHintBounds, - animationDuration, fromFullscreen); + if (toBounds == null /* toFullscreen */) { + final Configuration parentConfig = getParent().getConfiguration(); + final ActivityRecord top = topRunningNonOverlayTaskActivity(); + if (top != null && !top.isConfigurationCompatible(parentConfig)) { + // The final orientation of this activity will change after moving to full screen. + // Start freezing screen here to prevent showing a temporary full screen window. + top.startFreezingScreenLocked(top.app, CONFIG_SCREEN_LAYOUT); + mService.moveTasksToFullscreenStack(mStackId, true /* onTop */); + return; + } } + if (getTaskStack() == null) return; + getTaskStack().animateResizePinnedStack(toBounds, sourceHintBounds, + animationDuration, fromFullscreen); } /** @@ -5673,15 +5680,6 @@ class ActivityStack extends ConfigurationContainer { stack.getAnimationOrCurrentBounds(outBounds); } - private boolean skipResizeAnimation(boolean toFullscreen) { - if (!toFullscreen) { - return false; - } - final Configuration parentConfig = getParent().getConfiguration(); - final ActivityRecord top = topRunningNonOverlayTaskActivity(); - return top != null && !top.isConfigurationCompatible(parentConfig); - } - void setPictureInPictureAspectRatio(float aspectRatio) { if (getTaskStack() == null) return; getTaskStack().setPictureInPictureAspectRatio(aspectRatio); |