Switch to PictureInPictureParams#isSameAspectRatio
Switch to PictureInPictureParams#isSameAspectRatio on Launcher side, the
same check has been applied in CTS tests.
Flag: EXEMPT bugfix
Bug: 352118806
Test: atest PinnedStackTests
Change-Id: I26f87ef12b95204c7ee58467611b525aa24c3e3a
diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
index 7d5b471..d2f9652 100644
--- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
+++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
@@ -18,6 +18,7 @@
import android.animation.Animator;
import android.animation.RectEvaluator;
+import android.app.PictureInPictureParams;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ActivityInfo;
@@ -25,6 +26,7 @@
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.Log;
+import android.util.Rational;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.View;
@@ -50,8 +52,6 @@
private static final float END_PROGRESS = 1.0f;
- private static final float PIP_ASPECT_RATIO_MISMATCH_THRESHOLD = 0.01f;
-
private final int mTaskId;
private final ActivityInfo mActivityInfo;
private final SurfaceControl mLeash;
@@ -158,9 +158,8 @@
// not a valid rectangle to use for cropping app surface
reasonForCreateOverlay = "Source rect hint exceeds display bounds " + sourceRectHint;
sourceRectHint.setEmpty();
- } else if (Math.abs(
- aspectRatio - (sourceRectHint.width() / (float) sourceRectHint.height()))
- > PIP_ASPECT_RATIO_MISMATCH_THRESHOLD) {
+ } else if (!PictureInPictureParams.isSameAspectRatio(sourceRectHint,
+ new Rational(destinationBounds.width(), destinationBounds.height()))) {
// The source rect hint does not aspect ratio
reasonForCreateOverlay = "Source rect hint does not match aspect ratio "
+ sourceRectHint + " aspect ratio " + aspectRatio;