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

Commit 08281210 authored by Hongwei Wang's avatar Hongwei Wang Committed by Automerger Merge Worker
Browse files

Merge "Revert "PiP: Recalculate size if too big/small on display change.""...

Merge "Revert "PiP: Recalculate size if too big/small on display change."" into sc-v2-dev am: 7b5857e2 am: 3657ee4c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16275885

Change-Id: Ia15c9e36ffe24c000c19bb5627af10cfb2239d4a
parents 8fc593e9 3657ee4c
Loading
Loading
Loading
Loading
+4 −17
Original line number Diff line number Diff line
@@ -491,25 +491,12 @@ public class PipController implements PipTransitionController.PipTransitionCallb
        if (mPipTaskOrganizer.isInPip() && saveRestoreSnapFraction) {
            // Calculate the snap fraction of the current stack along the old movement bounds
            final PipSnapAlgorithm pipSnapAlgorithm = mPipBoundsAlgorithm.getSnapAlgorithm();
            final float snapFraction = pipSnapAlgorithm.getSnapFraction(mPipBoundsState.getBounds(),
                    mPipBoundsAlgorithm.getMovementBounds(mPipBoundsState.getBounds()),
            final Rect postChangeStackBounds = new Rect(mPipBoundsState.getBounds());
            final float snapFraction = pipSnapAlgorithm.getSnapFraction(postChangeStackBounds,
                    mPipBoundsAlgorithm.getMovementBounds(postChangeStackBounds),
                    mPipBoundsState.getStashedState());

            updateDisplayLayout.run();
            final Rect postChangeStackBounds;
            if (mPipBoundsState.getBounds() != null
                    && (mPipBoundsState.getBounds().width() > mPipBoundsState.getMaxSize().x
                    || mPipBoundsState.getBounds().height() > mPipBoundsState.getMaxSize().y)) {
                postChangeStackBounds = new Rect(0, 0, mPipBoundsState.getMaxSize().x,
                        mPipBoundsState.getMaxSize().y);
            } else if (mPipBoundsState.getBounds() != null
                    && (mPipBoundsState.getBounds().width() < mPipBoundsState.getMinSize().x
                    || mPipBoundsState.getBounds().height() < mPipBoundsState.getMinSize().y)) {
                postChangeStackBounds = new Rect(0, 0, mPipBoundsState.getMinSize().x,
                        mPipBoundsState.getMinSize().y);
            } else {
                postChangeStackBounds = new Rect(mPipBoundsState.getBounds());
            }

            // Calculate the stack bounds in the new orientation based on same fraction along the
            // rotated movement bounds.
@@ -521,7 +508,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
                    mPipBoundsState.getDisplayBounds(),
                    mPipBoundsState.getDisplayLayout().stableInsets());

            mTouchHandler.getMotionHelper().animateResizedBounds(postChangeStackBounds);
            mTouchHandler.getMotionHelper().movePip(postChangeStackBounds);
        } else {
            updateDisplayLayout.run();
        }
+0 −9
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
    private static final int UNSTASH_DURATION = 250;
    private static final int LEAVE_PIP_DURATION = 300;
    private static final int SHIFT_DURATION = 300;
    private static final int ANIMATE_PIP_RESIZE_ANIMATION = 250;

    /** Friction to use for PIP when it moves via physics fling animations. */
    private static final float DEFAULT_FRICTION = 1.9f;
@@ -548,14 +547,6 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
        resizeAndAnimatePipUnchecked(unstashedBounds, UNSTASH_DURATION);
    }

    /**
     * Animates the PiP from an old bound to a new bound. This is mostly used when display
     * has changed and PiP bounds needs to be changed.
     */
    void animateResizedBounds(Rect newBounds) {
        resizeAndAnimatePipUnchecked(newBounds, ANIMATE_PIP_RESIZE_ANIMATION);
    }

    /**
     * Animates the PiP to offset it from the IME or shelf.
     */
+1 −1
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ public class PipControllerTest extends ShellTestCase {
        mPipController.mDisplaysChangedListener.onDisplayConfigurationChanged(
                displayId, new Configuration());

        verify(mMockPipMotionHelper).animateResizedBounds(any(Rect.class));
        verify(mMockPipMotionHelper).movePip(any(Rect.class));
    }

    @Test