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 */,
|
updateMovementBounds(null /* toBounds */, false /* fromRotation */,
|
||||||
false /* fromImeAdjustment */, false /* fromShelfAdjustment */,
|
false /* fromImeAdjustment */, false /* fromShelfAdjustment */,
|
||||||
null /* windowContainerTransaction */);
|
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,
|
mPipBoundsState.getExpandedBounds(), insetBounds, expandedMovementBounds,
|
||||||
bottomOffset);
|
bottomOffset);
|
||||||
|
|
||||||
if (mPipResizeGestureHandler.isUsingPinchToZoom()) {
|
updatePipSizeConstraints(insetBounds, normalBounds, aspectRatio);
|
||||||
updatePinchResizeSizeConstraints(insetBounds, normalBounds, aspectRatio);
|
|
||||||
} else {
|
|
||||||
mPipResizeGestureHandler.updateMinSize(normalBounds.width(), normalBounds.height());
|
|
||||||
mPipResizeGestureHandler.updateMaxSize(mPipBoundsState.getExpandedBounds().width(),
|
|
||||||
mPipBoundsState.getExpandedBounds().height());
|
|
||||||
}
|
|
||||||
|
|
||||||
// The extra offset does not really affect the movement bounds, but are applied based on the
|
// 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
|
// 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,
|
private void updatePinchResizeSizeConstraints(Rect insetBounds, Rect normalBounds,
|
||||||
float aspectRatio) {
|
float aspectRatio) {
|
||||||
final int shorterLength = Math.min(mPipBoundsState.getDisplayBounds().width(),
|
final int shorterLength = Math.min(mPipBoundsState.getDisplayBounds().width(),
|
||||||
|
|||||||
Reference in New Issue
Block a user