summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2019-08-12 22:01:02 -0700
committer android-build-merger <android-build-merger@google.com> 2019-08-12 22:01:02 -0700
commit3d2b802aad8e8c46fc0015c1f800d131a94100c8 (patch)
tree2e9c7a6632fc97fc688700217af5e2ce96caaf08
parentc48b34afecd5b7276515a01e6cb4da0a2d81b2a4 (diff)
parentc8f1c61a62523fcfb1849aa5831da2ecabf12f8b (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.java28
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);