diff options
| author | 2019-08-12 22:01:02 -0700 | |
|---|---|---|
| committer | 2019-08-12 22:01:02 -0700 | |
| commit | 3d2b802aad8e8c46fc0015c1f800d131a94100c8 (patch) | |
| tree | 2e9c7a6632fc97fc688700217af5e2ce96caaf08 | |
| parent | c48b34afecd5b7276515a01e6cb4da0a2d81b2a4 (diff) | |
| parent | c8f1c61a62523fcfb1849aa5831da2ecabf12f8b (diff) | |
Merge "Freezing screen when dismiss pip if orientation is going to change." into qt-r1-dev am: 41b006d8d6 am: 669b8963f6
am: c8f1c61a62
Change-Id: I68068b4e1da49fc817da2bb561acb8d7cb71e2b0
| -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 17536e42acc8..12eab5096a13 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -5370,13 +5370,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); } /** @@ -5392,15 +5399,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); |