Reset override config when clearSizeCompat
Without this fix, after display density change, clicking size compat restart button won't relaunch the app in new density. Fix: 214339093 Fix: 209389023 Test: atest WmTests:SizeCompatTests#testClearSizeCompat_resetOverrideConfig Change-Id: I6db7a2c2250c17d735938acc84e39d883d466aa6
This commit is contained in:
@@ -7364,7 +7364,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
mSizeCompatBounds = null;
|
||||
mCompatDisplayInsets = null;
|
||||
|
||||
onRequestedOverrideConfigurationChanged(getRequestedOverrideConfiguration());
|
||||
// Clear config override in #updateCompatDisplayInsets().
|
||||
onRequestedOverrideConfigurationChanged(EMPTY);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -76,6 +76,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;
|
||||
@@ -2181,6 +2182,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.
|
||||
|
||||
Reference in New Issue
Block a user