diff options
| author | 2020-03-18 22:10:43 +0000 | |
|---|---|---|
| committer | 2020-03-18 22:10:43 +0000 | |
| commit | 055e616bd3e24a2943ac27396e60989883ab530c (patch) | |
| tree | 148866b5f7051a84600372130fa4613dbcf25170 | |
| parent | 7db4916a400403db116b3fdb6ff7f9fe0161ab3c (diff) | |
| parent | fedfb4635c7d00e0d2eab99fa4812f717fcc6927 (diff) | |
Merge "Apply proper displayCutout rotation in density 480 dpi and 270 degrees rotation."
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 54ab906e9924..ba4e11a3d8c5 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -343,7 +343,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo */ final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics(); - /** @see #computeCompatSmallestWidth(boolean, int, int, int, DisplayCutout) */ + /** @see #computeCompatSmallestWidth(boolean, int, int, int) */ private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics(); /** @@ -1715,7 +1715,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale); config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, config.uiMode, dw, - dh, displayInfo.displayCutout); + dh); config.densityDpi = displayInfo.logicalDensityDpi; config.colorMode = @@ -1800,8 +1800,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence); } - private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh, - DisplayCutout displayCutout) { + private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh) { mTmpDisplayMetrics.setTo(mDisplayMetrics); final DisplayMetrics tmpDm = mTmpDisplayMetrics; final int unrotDw, unrotDh; @@ -1812,19 +1811,21 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo unrotDw = dw; unrotDh = dh; } - int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw, unrotDh, - displayCutout); - sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh, unrotDw, - displayCutout); - sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw, unrotDh, - displayCutout); - sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh, unrotDw, - displayCutout); + int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw, + unrotDh); + sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh, + unrotDw); + sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw, + unrotDh); + sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh, + unrotDw); return sw; } private int reduceCompatConfigWidthSize(int curSize, int rotation, int uiMode, - DisplayMetrics dm, int dw, int dh, DisplayCutout displayCutout) { + DisplayMetrics dm, int dw, int dh) { + final DisplayCutout displayCutout = calculateDisplayCutoutForRotation( + rotation).getDisplayCutout(); dm.noncompatWidthPixels = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout); dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, @@ -1865,20 +1866,20 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo return; } int sl = Configuration.resetScreenLayout(outConfig.screenLayout); - sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode, - displayInfo.displayCutout); - sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode, - displayInfo.displayCutout); - sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode, - displayInfo.displayCutout); - sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode, - displayInfo.displayCutout); + sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode); + sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode); + sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode); + sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode); outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density); outConfig.screenLayout = sl; } private int reduceConfigLayout(int curLayout, int rotation, float density, int dw, int dh, - int uiMode, DisplayCutout displayCutout) { + int uiMode) { + // Get the display cutout at this rotation. + final DisplayCutout displayCutout = calculateDisplayCutoutForRotation( + rotation).getDisplayCutout(); + // Get the app screen size at this rotation. int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout); int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout); |