Merge "Update the min/max allowed pip size on aspect ratio change." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6bd105d566
@@ -503,6 +503,12 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
||||
updateMovementBounds(null /* toBounds */, false /* fromRotation */,
|
||||
false /* fromImeAdjustment */, false /* fromShelfAdjustment */,
|
||||
null /* windowContainerTransaction */);
|
||||
} else {
|
||||
// when we enter pip for the first time, the destination bounds and pip
|
||||
// bounds will already match, since they are calculated prior to
|
||||
// starting the animation, so we only need to update the min/max size
|
||||
// that is used for e.g. double tap to maximized state
|
||||
mTouchHandler.updateMinMaxSize(ratio);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -412,13 +412,7 @@ public class PipTouchHandler {
|
||||
mPipBoundsState.getExpandedBounds(), insetBounds, expandedMovementBounds,
|
||||
bottomOffset);
|
||||
|
||||
if (mPipResizeGestureHandler.isUsingPinchToZoom()) {
|
||||
updatePinchResizeSizeConstraints(insetBounds, normalBounds, aspectRatio);
|
||||
} else {
|
||||
mPipResizeGestureHandler.updateMinSize(normalBounds.width(), normalBounds.height());
|
||||
mPipResizeGestureHandler.updateMaxSize(mPipBoundsState.getExpandedBounds().width(),
|
||||
mPipBoundsState.getExpandedBounds().height());
|
||||
}
|
||||
updatePipSizeConstraints(insetBounds, normalBounds, aspectRatio);
|
||||
|
||||
// The extra offset does not really affect the movement bounds, but are applied based on the
|
||||
// current state (ime showing, or shelf offset) when we need to actually shift
|
||||
@@ -487,6 +481,27 @@ public class PipTouchHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the values for min/max allowed size of picture in picture window based on the aspect
|
||||
* ratio.
|
||||
* @param aspectRatio aspect ratio to use for the calculation of min/max size
|
||||
*/
|
||||
public void updateMinMaxSize(float aspectRatio) {
|
||||
updatePipSizeConstraints(mInsetBounds, mPipBoundsState.getNormalBounds(),
|
||||
aspectRatio);
|
||||
}
|
||||
|
||||
private void updatePipSizeConstraints(Rect insetBounds, Rect normalBounds,
|
||||
float aspectRatio) {
|
||||
if (mPipResizeGestureHandler.isUsingPinchToZoom()) {
|
||||
updatePinchResizeSizeConstraints(insetBounds, normalBounds, aspectRatio);
|
||||
} else {
|
||||
mPipResizeGestureHandler.updateMinSize(normalBounds.width(), normalBounds.height());
|
||||
mPipResizeGestureHandler.updateMaxSize(mPipBoundsState.getExpandedBounds().width(),
|
||||
mPipBoundsState.getExpandedBounds().height());
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePinchResizeSizeConstraints(Rect insetBounds, Rect normalBounds,
|
||||
float aspectRatio) {
|
||||
final int shorterLength = Math.min(mPipBoundsState.getDisplayBounds().width(),
|
||||
|
||||
Reference in New Issue
Block a user