Merge "Expand PIP to the normal size when menu actions don't fit" into sc-dev

This commit is contained in:
Jorge Gil
2021-05-21 15:20:18 +00:00
committed by Android (Google) Code Review

View File

@@ -667,7 +667,9 @@ public class PipTouchHandler {
// we store back to this snap fraction. Otherwise, we'll reset the snap
// fraction and snap to the closest edge.
if (resize) {
animateToExpandedState(callback);
// PIP is too small to show the menu actions and thus needs to be resized to a
// size that can fit them all. Resize to the default size.
animateToNormalSize(callback);
}
} else if (menuState == MENU_STATE_NONE && mMenuState == MENU_STATE_FULL) {
// Try and restore the PiP to the closest edge, using the saved snap fraction
@@ -721,22 +723,13 @@ public class PipTouchHandler {
callback);
}
private void animateToMinimizedState() {
animateToUnexpandedState(new Rect(0, 0, mPipBoundsState.getMinSize().x,
mPipBoundsState.getMinSize().y));
}
private void animateToExpandedState(Runnable callback) {
private void animateToNormalSize(Runnable callback) {
mPipResizeGestureHandler.setUserResizeBounds(mPipBoundsState.getBounds());
final Rect currentBounds = mPipBoundsState.getBounds();
final Rect expandedBounds = mPipBoundsState.getExpandedBounds();
Rect finalExpandedBounds = new Rect(expandedBounds.width() > expandedBounds.width()
&& expandedBounds.height() > expandedBounds.height()
? currentBounds : expandedBounds);
final Rect normalBounds = new Rect(mPipBoundsState.getNormalBounds());
Rect restoredMovementBounds = new Rect();
mPipBoundsAlgorithm.getMovementBounds(finalExpandedBounds,
mPipBoundsAlgorithm.getMovementBounds(normalBounds,
mInsetBounds, restoredMovementBounds, mIsImeShowing ? mImeHeight : 0);
mSavedSnapFraction = mMotionHelper.animateToExpandedState(finalExpandedBounds,
mSavedSnapFraction = mMotionHelper.animateToExpandedState(normalBounds,
mPipBoundsState.getMovementBounds(), restoredMovementBounds, callback);
}