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

Commit 16a472fa authored by Vali Calinescu's avatar Vali Calinescu Committed by Automerger Merge Worker
Browse files

Merge "Replace containing aspect ratio hard comparison with rounded one" into...

Merge "Replace containing aspect ratio hard comparison with rounded one" into tm-qpr-dev am: 4677d90f am: 866b9a9f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21061891



Change-Id: Ib4316e42901292596d2d7ea6334a7f51cb45dbf9
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents eb6e0844 866b9a9f
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -444,6 +444,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
    // finished destroying itself.
    private static final int DESTROY_TIMEOUT = 10 * 1000;

    // Rounding tolerance to be used in aspect ratio computations
    private static final float ASPECT_RATIO_ROUNDING_TOLERANCE = 0.005f;

    final ActivityTaskManagerService mAtmService;
    @NonNull
    final ActivityInfo info; // activity info provided by developer in AndroidManifest
@@ -9037,7 +9040,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        int activityWidth = containingAppWidth;
        int activityHeight = containingAppHeight;

        if (containingRatio > desiredAspectRatio) {
        if (containingRatio - desiredAspectRatio > ASPECT_RATIO_ROUNDING_TOLERANCE) {
            if (containingAppWidth < containingAppHeight) {
                // Width is the shorter side, so we use that to figure-out what the max. height
                // should be given the aspect ratio.
@@ -9047,7 +9050,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                // should be given the aspect ratio.
                activityWidth = (int) ((activityHeight * desiredAspectRatio) + 0.5f);
            }
        } else if (containingRatio < desiredAspectRatio) {
        } else if (desiredAspectRatio - containingRatio > ASPECT_RATIO_ROUNDING_TOLERANCE) {
            boolean adjustWidth;
            switch (getRequestedConfigurationOrientation()) {
                case ORIENTATION_LANDSCAPE:
+14 −0
Original line number Diff line number Diff line
@@ -3070,6 +3070,20 @@ public class SizeCompatTests extends WindowTestsBase {
        assertEquals(mActivity.getBounds(), display.getBounds());
    }

    @Test
    public void testApplyAspectRatio_containingRatioAlmostEqualToMaxRatio_boundsUnchanged() {
        setUpDisplaySizeWithApp(1981, 2576);
        mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
        mWm.mLetterboxConfiguration.setLetterboxVerticalPositionMultiplier(0.5f);

        final Rect originalBounds = new Rect(mActivity.getBounds());
        prepareUnresizable(mActivity, 1.3f, SCREEN_ORIENTATION_UNSPECIFIED);

        // The containing aspect ratio is now 1.3003534, while the desired aspect ratio is 1.3. The
        // bounds of the activity should not be changed as the difference is too small
        assertEquals(mActivity.getBounds(), originalBounds);
    }

    @Test
    public void testUpdateResolvedBoundsHorizontalPosition_activityFillParentWidth() {
        // When activity width equals parent width, multiplier shouldn't have any effect.