Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14416f73 authored by Hongwei Wang's avatar Hongwei Wang
Browse files

Switch to PictureInPictureParams#isSameAspectRatio

Switch to PictureInPictureParams#isSameAspectRatio on Shell side, the
same check has been applied in CTS tests.

Flag: EXEMPT bugfix
Bug: 352118806
Test: atest PinnedStackTests
Change-Id: Ie40d69945414e0e9462cb2310b70492a2e7137b4
parent aa6b9b69
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.graphics.Rect;
import android.util.DisplayMetrics;
import android.util.Rational;
import android.util.Size;
import android.view.Gravity;

@@ -41,9 +42,6 @@ public class PipBoundsAlgorithm {
    private static final String TAG = PipBoundsAlgorithm.class.getSimpleName();
    private static final float INVALID_SNAP_FRACTION = -1f;

    // The same value (with the same name) is used in Launcher.
    private static final float PIP_ASPECT_RATIO_MISMATCH_THRESHOLD = 0.01f;

    @NonNull private final PipBoundsState mPipBoundsState;
    @NonNull protected final PipDisplayLayoutState mPipDisplayLayoutState;
    @NonNull protected final SizeSpecSource mSizeSpecSource;
@@ -223,9 +221,8 @@ public class PipBoundsAlgorithm {
                            + " than destination(%s)", sourceRectHint, destinationBounds);
            return false;
        }
        final float reportedRatio = destinationBounds.width() / (float) destinationBounds.height();
        final float inferredRatio = sourceRectHint.width() / (float) sourceRectHint.height();
        if (Math.abs(reportedRatio - inferredRatio) > PIP_ASPECT_RATIO_MISMATCH_THRESHOLD) {
        if (!PictureInPictureParams.isSameAspectRatio(sourceRectHint,
                new Rational(destinationBounds.width(), destinationBounds.height()))) {
            ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                    "isSourceRectHintValidForEnterPip=false, hint(%s) does not match"
                            + " destination(%s) aspect ratio", sourceRectHint, destinationBounds);