Prevent updating aspect ratio unless it is different.
- The old check of the bounds assumed there was no expanded state, so when a PiP activity tries to set the aspect ratio from a a menu action, it will cause an animation to the normal bounds again. Bug: 36462497 Test: Set aspect ratio in pip action handler Change-Id: Iba5e9571a3024c8369c2a24d32c2d8f34831ede4
This commit is contained in:
@@ -298,6 +298,13 @@ class PinnedStackController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the current aspect ratio.
|
||||
*/
|
||||
float getAspectRatio() {
|
||||
return mAspectRatio;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current set of actions.
|
||||
*/
|
||||
|
||||
@@ -79,19 +79,17 @@ public class PinnedStackWindowController extends StackWindowController {
|
||||
return;
|
||||
}
|
||||
|
||||
final int displayId = mContainer.getDisplayContent().getDisplayId();
|
||||
final Rect toBounds = mService.getPictureInPictureBounds(displayId, aspectRatio);
|
||||
final Rect targetBounds = new Rect();
|
||||
mContainer.getAnimatingBounds(targetBounds);
|
||||
if (!toBounds.equals(targetBounds)) {
|
||||
animateResizePinnedStack(toBounds, -1 /* duration */);
|
||||
}
|
||||
|
||||
final PinnedStackController pinnedStackController =
|
||||
mContainer.getDisplayContent().getPinnedStackController();
|
||||
pinnedStackController.setAspectRatio(
|
||||
pinnedStackController.isValidPictureInPictureAspectRatio(aspectRatio)
|
||||
? aspectRatio : -1f);
|
||||
|
||||
if (Float.compare(aspectRatio, pinnedStackController.getAspectRatio()) != 0) {
|
||||
final int displayId = mContainer.getDisplayContent().getDisplayId();
|
||||
final Rect toBounds = mService.getPictureInPictureBounds(displayId, aspectRatio);
|
||||
animateResizePinnedStack(toBounds, -1 /* duration */);
|
||||
pinnedStackController.setAspectRatio(
|
||||
pinnedStackController.isValidPictureInPictureAspectRatio(aspectRatio)
|
||||
? aspectRatio : -1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user