Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9fecb6c authored by Ben Lin's avatar Ben Lin
Browse files

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
parent f426138a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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,