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

Commit 91cfa7ff authored by Chris Li's avatar Chris Li Committed by Automerger Merge Worker
Browse files

Merge "Reset override config when clearSizeCompat" into sc-v2-dev am: 33032172 am: 7d242203

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

Change-Id: I40844ddb01d74057d69b35dafb324e5e2f11660f
parents 03a3c96b 7d242203
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7369,7 +7369,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        mSizeCompatBounds = null;
        mCompatDisplayInsets = null;

        onRequestedOverrideConfigurationChanged(getRequestedOverrideConfiguration());
        // Clear config override in #updateCompatDisplayInsets().
        onRequestedOverrideConfigurationChanged(EMPTY);
    }

    @Override
+24 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo.ScreenOrientation;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
import android.provider.DeviceConfig;
import android.provider.DeviceConfig.Properties;
@@ -2182,6 +2183,29 @@ public class SizeCompatTests extends WindowTestsBase {
                .computeAspectRatio(sizeCompatAppBounds), delta);
    }

    @Test
    public void testClearSizeCompat_resetOverrideConfig() {
        final int origDensity = 480;
        final int newDensity = 520;
        final DisplayContent display = new TestDisplayContent.Builder(mAtm, 600, 800)
                .setDensityDpi(origDensity)
                .build();
        setUpApp(display);
        prepareUnresizable(mActivity, -1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);

        // Activity should enter size compat with old density after display density change.
        display.setForcedDensity(newDensity, UserHandle.USER_CURRENT);

        assertScaled();
        assertEquals(origDensity, mActivity.getConfiguration().densityDpi);

        // Activity should exit size compat with new density.
        mActivity.clearSizeCompatMode();

        assertFitted();
        assertEquals(newDensity, mActivity.getConfiguration().densityDpi);
    }

    private void assertHorizontalPositionForDifferentDisplayConfigsForLandscapeActivity(
            float letterboxHorizontalPositionMultiplier) {
        // Set up a display in landscape and ignoring orientation request.