Merge "Freezing screen when dismiss pip if orientation is going to change." into qt-r1-dev
am: 41b006d8d6
Change-Id: I4c66179b972c9137fc233df385cbf4699f635d55
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user