Merge "Round screen size of configuration" into tm-qpr-dev

This commit is contained in:
Riddle Hsu
2022-05-16 03:13:29 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 10 deletions

View File

@@ -365,8 +365,8 @@ public class ResourcesManager {
@NonNull Configuration config) { @NonNull Configuration config) {
config.touchscreen = Configuration.TOUCHSCREEN_NOTOUCH; config.touchscreen = Configuration.TOUCHSCREEN_NOTOUCH;
config.densityDpi = dm.densityDpi; config.densityDpi = dm.densityDpi;
config.screenWidthDp = (int) (dm.widthPixels / dm.density); config.screenWidthDp = (int) (dm.widthPixels / dm.density + 0.5f);
config.screenHeightDp = (int) (dm.heightPixels / dm.density); config.screenHeightDp = (int) (dm.heightPixels / dm.density + 0.5f);
int sl = Configuration.resetScreenLayout(config.screenLayout); int sl = Configuration.resetScreenLayout(config.screenLayout);
if (dm.widthPixels > dm.heightPixels) { if (dm.widthPixels > dm.heightPixels) {
config.orientation = Configuration.ORIENTATION_LANDSCAPE; config.orientation = Configuration.ORIENTATION_LANDSCAPE;

View File

@@ -2212,9 +2212,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
final float density = mDisplayMetrics.density; final float density = mDisplayMetrics.density;
outConfig.screenWidthDp = (int) (mDisplayPolicy.getConfigDisplayWidth(dw, dh, rotation, outConfig.screenWidthDp = (int) (mDisplayPolicy.getConfigDisplayWidth(dw, dh, rotation,
uiMode, displayCutout) / density); uiMode, displayCutout) / density + 0.5f);
outConfig.screenHeightDp = (int) (mDisplayPolicy.getConfigDisplayHeight(dw, dh, rotation, outConfig.screenHeightDp = (int) (mDisplayPolicy.getConfigDisplayHeight(dw, dh, rotation,
uiMode, displayCutout) / density); uiMode, displayCutout) / density + 0.5f);
outConfig.compatScreenWidthDp = (int) (outConfig.screenWidthDp / mCompatibleScreenScale); outConfig.compatScreenWidthDp = (int) (outConfig.screenWidthDp / mCompatibleScreenScale);
outConfig.compatScreenHeightDp = (int) (outConfig.screenHeightDp / mCompatibleScreenScale); outConfig.compatScreenHeightDp = (int) (outConfig.screenHeightDp / mCompatibleScreenScale);

View File

@@ -2215,23 +2215,28 @@ public class DisplayContentTests extends WindowTestsBase {
*/ */
@Test @Test
public void testCreateTestDisplayContentFromDimensions() { public void testCreateTestDisplayContentFromDimensions() {
final int displayWidth = 1000; final int displayWidth = 540;
final int displayHeight = 2000; final int displayHeight = 960;
final int density = 192;
final int expectedWidthDp = 450; // = 540/(192/160)
final int expectedHeightDp = 800; // = 960/(192/160)
final int windowingMode = WINDOWING_MODE_FULLSCREEN; final int windowingMode = WINDOWING_MODE_FULLSCREEN;
final boolean ignoreOrientationRequests = false; final boolean ignoreOrientationRequests = false;
final float fixedOrientationLetterboxRatio = 0; final float fixedOrientationLetterboxRatio = 0;
final DisplayContent testDisplayContent = new TestDisplayContent.Builder(mAtm, displayWidth, final DisplayContent testDisplayContent = new TestDisplayContent.Builder(mAtm, displayWidth,
displayHeight).build(); displayHeight).setDensityDpi(density).build();
// test display info // test display info
final DisplayInfo di = testDisplayContent.getDisplayInfo(); final DisplayInfo di = testDisplayContent.getDisplayInfo();
assertEquals(displayWidth, di.logicalWidth); assertEquals(displayWidth, di.logicalWidth);
assertEquals(displayHeight, di.logicalHeight); assertEquals(displayHeight, di.logicalHeight);
assertEquals(TestDisplayContent.DEFAULT_LOGICAL_DISPLAY_DENSITY, di.logicalDensityDpi); assertEquals(density, di.logicalDensityDpi);
// test configuration // test configuration
final WindowConfiguration windowConfig = testDisplayContent.getConfiguration() final Configuration config = testDisplayContent.getConfiguration();
.windowConfiguration; assertEquals(expectedWidthDp, config.screenWidthDp);
assertEquals(expectedHeightDp, config.screenHeightDp);
final WindowConfiguration windowConfig = config.windowConfiguration;
assertEquals(displayWidth, windowConfig.getBounds().width()); assertEquals(displayWidth, windowConfig.getBounds().width());
assertEquals(displayHeight, windowConfig.getBounds().height()); assertEquals(displayHeight, windowConfig.getBounds().height());
assertEquals(windowingMode, windowConfig.getWindowingMode()); assertEquals(windowingMode, windowConfig.getWindowingMode());