diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/BoundsAnimationController.java | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/wm/BoundsAnimationController.java b/services/core/java/com/android/server/wm/BoundsAnimationController.java index b5e706710823..5dc88b37e445 100644 --- a/services/core/java/com/android/server/wm/BoundsAnimationController.java +++ b/services/core/java/com/android/server/wm/BoundsAnimationController.java @@ -410,7 +410,7 @@ public class BoundsAnimationController { @VisibleForTesting boolean animatingToLargerSize() { // TODO: Fix this check for aspect ratio changes - return (mFrom.width() * mFrom.height() <= mTo.width() * mTo.height()); + return (mFrom.width() * mFrom.height() < mTo.width() * mTo.height()); } @Override @@ -453,16 +453,10 @@ public class BoundsAnimationController { boolean moveFromFullscreen, boolean moveToFullscreen, @AnimationType int animationType) { final BoundsAnimator existing = mRunningAnimations.get(target); - // animateBoundsImpl gets called twice for each animation. The second time we get the final - // to rect that respects the shelf, which is when we want to resize. Our signal for fade in - // comes in from how to enter into pip, but we also need to use the to and from rect to - // decide which animation we want to run finally. - boolean shouldResize = false; - if (isRunningFadeInAnimation(target)) { - shouldResize = true; - if (from.contains(to)) { - animationType = FADE_IN; - } + + if (isRunningFadeInAnimation(target) && from.width() == to.width() + && from.height() == to.height()) { + animationType = FADE_IN; } final boolean replacing = existing != null; @SchedulePipModeChangedState int prevSchedulePipModeChangedState = @@ -523,9 +517,10 @@ public class BoundsAnimationController { // Since we are replacing, we skip both animation start and end callbacks existing.cancel(); } - if (shouldResize) { + if (animationType == FADE_IN) { target.setPinnedStackSize(to, null); } + final BoundsAnimator animator = new BoundsAnimator(target, animationType, from, to, schedulePipModeChangedState, prevSchedulePipModeChangedState, moveFromFullscreen, moveToFullscreen, frozenTask); |