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

Commit a2caf278 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Fix some minor issues with animating dismiss" into rvc-dev

parents 4e2cf864 c5aa333a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -206,6 +206,7 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
    void synchronizePinnedStackBounds() {
        cancelAnimations();
        mBounds.set(mPipTaskOrganizer.getLastReportedBounds());
        mTemporaryBounds.setEmpty();

        if (mPipTaskOrganizer.isInPip()) {
            mFloatingContentCoordinator.onContentMoved(this);
@@ -274,6 +275,11 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
        final float destinationX = targetCenter.x - (desiredWidth / 2f);
        final float destinationY = targetCenter.y - (desiredHeight / 2f);

        // If we're already in the dismiss target area, then there won't be a move to set the
        // temporary bounds, so just initialize it to the current bounds
        if (mTemporaryBounds.isEmpty()) {
            mTemporaryBounds.set(mBounds);
        }
        mTemporaryBoundsPhysicsAnimator
                .spring(FloatProperties.RECT_X, destinationX, velX, mSpringConfig)
                .spring(FloatProperties.RECT_Y, destinationY, velY, mSpringConfig)
+6 −3
Original line number Diff line number Diff line
@@ -82,6 +82,9 @@ public class PipTouchHandler {
    /** Duration of the dismiss scrim fading in/out. */
    private static final int DISMISS_TRANSITION_DURATION_MS = 200;

    /* The multiplier to apply scale the target size by when applying the magnetic field radius */
    private static final float MAGNETIC_FIELD_RADIUS_MULTIPLIER = 1.25f;

    // Allow dragging the PIP to a location to close it
    private final boolean mEnableDismissDragToEdge;
    // Allow PIP to resize to a slightly bigger state upon touch
@@ -330,8 +333,9 @@ public class PipTouchHandler {
                R.dimen.floating_dismiss_bottom_margin);
        mTargetView.setLayoutParams(newParams);

        // Set the magnetic field radius equal to twice the size of the target.
        mMagneticTarget.setMagneticFieldRadiusPx(targetSize * 2);
        // Set the magnetic field radius equal to the target size from the center of the target
        mMagneticTarget.setMagneticFieldRadiusPx(
                (int) (targetSize * MAGNETIC_FIELD_RADIUS_MULTIPLIER));
    }

    private boolean shouldShowResizeHandle() {
@@ -953,7 +957,6 @@ public class PipTouchHandler {
            }

            final PointF vel = touchState.getVelocity();
            final float velocity = PointF.length(vel.x, vel.y);

            if (touchState.isDragging()) {
                if (mMenuState != MENU_STATE_NONE) {