diff options
| author | 2021-01-29 19:32:38 -0800 | |
|---|---|---|
| committer | 2021-01-29 19:32:38 -0800 | |
| commit | b9fecb6cdccf7e5747dea48e2fa22cd3d18757f9 (patch) | |
| tree | 61ab126544d557c61598c311d437e639bbf4673a | |
| parent | f426138ac84414c4d00f6c7190535f289b428f66 (diff) | |
PiP: Pinch-resize auto to max size if it's pretty close to it.
Bug: 178881304
Test: Manual. Pinch to almost max (but not max), let go
Change-Id: I18afcfc2cf71554c4470696a507c1a3aedd900c2
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java index 8fb358ad74d1..b91ba34c4464 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java @@ -64,6 +64,7 @@ public class PipResizeGestureHandler { private static final String TAG = "PipResizeGestureHandler"; private static final int PINCH_RESIZE_SNAP_DURATION = 250; private static final int PINCH_RESIZE_MAX_ANGLE_ROTATION = 45; + private static final float PINCH_RESIZE_AUTO_MAX_RATIO = 0.9f; private final Context mContext; private final PipBoundsAlgorithm mPipBoundsAlgorithm; @@ -539,6 +540,11 @@ public class PipResizeGestureHandler { // position correctly. Drag-resize does not need to move, so just finalize resize. if (mUsingPinchToZoom) { final Rect startBounds = new Rect(mLastResizeBounds); + // If user resize is pretty close to max size, just auto resize to max. + if (mLastResizeBounds.width() >= PINCH_RESIZE_AUTO_MAX_RATIO * mMaxSize.x + || mLastResizeBounds.height() >= PINCH_RESIZE_AUTO_MAX_RATIO * mMaxSize.y) { + mLastResizeBounds.set(0, 0, mMaxSize.x, mMaxSize.y); + } mPipBoundsAlgorithm.applySnapFraction(mLastResizeBounds, mPipBoundsAlgorithm.getSnapFraction(mPipBoundsState.getBounds())); mPipTaskOrganizer.scheduleAnimateResizePip(startBounds, mLastResizeBounds, |