From 51cf7d18a78456b04df480a11d850cde07635091 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 28 Oct 2021 16:06:19 -0700 Subject: [PATCH] Pass sourceRectHint to auto-enter-pip transition Bug: 198309223 Video: http://recall/-/aaaaaabFQoRHlzixHdtY/eODHpvqAQPfbwjFamtRYC1 Test: manual, see video Change-Id: I169603c5285f9a226ab0423dbd36d8e3e2ca51a1 --- .../com/android/quickstep/util/SwipePipToHomeAnimator.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java index 70fde1def7..b222f51e50 100644 --- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java +++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java @@ -56,6 +56,7 @@ public class SwipePipToHomeAnimator extends RectFSpringAnim { private final int mTaskId; private final ComponentName mComponentName; private final SurfaceControl mLeash; + private final Rect mSourceRectHint = new Rect(); private final Rect mAppBounds = new Rect(); private final Matrix mHomeToWindowPositionMap = new Matrix(); private final Rect mStartBounds = new Rect(); @@ -140,6 +141,7 @@ public class SwipePipToHomeAnimator extends RectFSpringAnim { } if (sourceRectHint == null) { + mSourceRectHint.setEmpty(); mSourceHintRectInsets = null; // Create a new overlay layer @@ -169,6 +171,7 @@ public class SwipePipToHomeAnimator extends RectFSpringAnim { t.apply(); }); } else { + mSourceRectHint.set(sourceRectHint); mSourceHintRectInsets = new Rect(sourceRectHint.left - appBounds.left, sourceRectHint.top - appBounds.top, appBounds.right - sourceRectHint.right, @@ -249,7 +252,8 @@ public class SwipePipToHomeAnimator extends RectFSpringAnim { return mSurfaceTransactionHelper.scaleAndRotate(tx, mLeash, mAppBounds, bounds, insets, rotatedPosition.degree, rotatedPosition.positionX, rotatedPosition.positionY); } else { - return mSurfaceTransactionHelper.scaleAndCrop(tx, mLeash, mAppBounds, bounds, insets); + return mSurfaceTransactionHelper.scaleAndCrop(tx, mLeash, mSourceRectHint, mAppBounds, + bounds, insets); } }