diff options
| author | 2022-01-22 03:34:02 +0000 | |
|---|---|---|
| committer | 2022-01-22 03:34:02 +0000 | |
| commit | 91cfa7ff07612192644bb0106c224444cde7257d (patch) | |
| tree | 2dd0b9daa6f23dea434cbf86e677b901601cb235 | |
| parent | 03a3c96b499e0ad4738fc7f56f2f1fd3c405e304 (diff) | |
| parent | 7d242203fb0e41752c255b41ea155e5314c92b5c (diff) | |
Merge "Reset override config when clearSizeCompat" into sc-v2-dev am: 3303217286 am: 7d242203fb
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16668784
Change-Id: I40844ddb01d74057d69b35dafb324e5e2f11660f
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 3 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java | 24 |
2 files changed, 26 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 86ef8d2b26fc..7b5d215a24e6 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -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 diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java index c722b0a70c0a..b815c38b7a8a 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java @@ -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. |