From 06f8587f412ceddfce8cc676df0dbf92c05cbad2 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Tue, 16 Nov 2021 18:55:49 +0000 Subject: [PATCH] Revert "PiP: Recalculate size if too big/small on display change." This reverts commit 4ef153a7970c64f3cb997c408b41465e3e9ef36f. Reason for revert: This fixes a foldable bug and so not really needed anymore for sc-v2. We'll leave it master only. Bug: b/205761901 Bug: b/206644532 Change-Id: Ia50d491d89a4c9faaa49c3e2b9afe38f73bd7f57 --- .../wm/shell/pip/phone/PipController.java | 21 ++++--------------- .../wm/shell/pip/phone/PipMotionHelper.java | 9 -------- .../wm/shell/pip/phone/PipControllerTest.java | 2 +- 3 files changed, 5 insertions(+), 27 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java index 6ce43a0412996..7cfba148a907f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java @@ -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(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMotionHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMotionHelper.java index c634b7f220b05..96fd59f0c9113 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMotionHelper.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMotionHelper.java @@ -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. */ diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java index c2f58b8b62662..935f6695538de 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java @@ -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