Loading packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java +14 −7 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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. */ Loading Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java +14 −7 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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. */ Loading Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading