Merge "Apply proper displayCutout rotation in density 480 dpi and 270 degrees rotation." am: 055e616bd3
Change-Id: I1cc2f6ead0998353e5f8e260fb0fa8d73468bdd3
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user