summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2019-08-12 21:51:20 -0700
committer android-build-merger <android-build-merger@google.com> 2019-08-12 21:51:20 -0700
commitc8f1c61a62523fcfb1849aa5831da2ecabf12f8b (patch)
tree9ea9e339a655288b216ff8457f88c8ae7c3cb291
parent433441998b652c068fef36e5ff9c68c1aa2081f0 (diff)
parent669b8963f654defd3e5df564d72a6d6e8b2b3c92 (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.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 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);