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

Commit 66ae260c authored by Winson Chung's avatar Winson Chung Committed by Automerger Merge Worker
Browse files

Merge "Fixing last CL (uploaded the wrong patch)" into rvc-dev am: 0edfd76f

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

Change-Id: I9278e616c17a56f7489f4be23ef1087b54903fdb
parents 41bd44e6 0edfd76f
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -228,7 +228,6 @@ public class PipTaskOrganizer extends TaskOrganizer implements
        PipAnimationController.PipTransitionAnimator animator =
                mPipAnimationController.getCurrentAnimator();
        if (animator != null && animator.isRunning()) {
            System.out.println("RUNNING ANIM: anim=" + animator.getDestinationBounds() + " last=" + getLastReportedBounds());
            return new Rect(animator.getDestinationBounds());
        }
        return getLastReportedBounds();
@@ -238,6 +237,10 @@ public class PipTaskOrganizer extends TaskOrganizer implements
        return mInPip;
    }

    public boolean isDeferringEnterPipAnimation() {
        return mInPip && mShouldDeferEnteringPip;
    }

    /**
     * Registers {@link PipTransitionCallback} to receive transition callbacks.
     */
@@ -533,12 +536,16 @@ public class PipTaskOrganizer extends TaskOrganizer implements
                // If we are rotating while there is a current animation, immediately cancel the
                // animation (remove the listeners so we don't trigger the normal finish resize
                // call that should only happen on the update thread)
                int direction = animator.getTransitionDirection();
                int direction = TRANSITION_DIRECTION_NONE;
                if (animator != null) {
                    direction = animator.getTransitionDirection();
                    animator.removeAllUpdateListeners();
                    animator.removeAllListeners();
                    animator.cancel();
                    // Do notify the listeners that this was canceled
                    sendOnPipTransitionCancelled(direction);
                    sendOnPipTransitionFinished(direction);
                }
                mLastReportedBounds.set(destinationBoundsOut);

                // Create a reset surface transaction for the new bounds and update the window
+4 −0
Original line number Diff line number Diff line
@@ -95,6 +95,10 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
     */
    private final DisplayChangeController.OnDisplayChangingListener mRotationController = (
            int displayId, int fromRotation, int toRotation, WindowContainerTransaction t) -> {
        if (!mPipTaskOrganizer.isInPip() || mPipTaskOrganizer.isDeferringEnterPipAnimation()) {
            // Skip if we aren't in PIP or haven't actually entered PIP yet
            return;
        }
        // If there is an animation running (ie. from a shelf offset), then ensure that we calculate
        // the bounds for the next orientation using the destination bounds of the animation
        // TODO: Techincally this should account for movement animation bounds as well