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();
|
final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics();
|
||||||
|
|
||||||
/** @see #computeCompatSmallestWidth(boolean, int, int, int, DisplayCutout) */
|
/** @see #computeCompatSmallestWidth(boolean, int, int, int) */
|
||||||
private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();
|
private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1715,7 +1715,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale);
|
config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale);
|
||||||
config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale);
|
config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale);
|
||||||
config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, config.uiMode, dw,
|
config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, config.uiMode, dw,
|
||||||
dh, displayInfo.displayCutout);
|
dh);
|
||||||
config.densityDpi = displayInfo.logicalDensityDpi;
|
config.densityDpi = displayInfo.logicalDensityDpi;
|
||||||
|
|
||||||
config.colorMode =
|
config.colorMode =
|
||||||
@@ -1800,8 +1800,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
|
mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh,
|
private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh) {
|
||||||
DisplayCutout displayCutout) {
|
|
||||||
mTmpDisplayMetrics.setTo(mDisplayMetrics);
|
mTmpDisplayMetrics.setTo(mDisplayMetrics);
|
||||||
final DisplayMetrics tmpDm = mTmpDisplayMetrics;
|
final DisplayMetrics tmpDm = mTmpDisplayMetrics;
|
||||||
final int unrotDw, unrotDh;
|
final int unrotDw, unrotDh;
|
||||||
@@ -1812,19 +1811,21 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
unrotDw = dw;
|
unrotDw = dw;
|
||||||
unrotDh = dh;
|
unrotDh = dh;
|
||||||
}
|
}
|
||||||
int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw, unrotDh,
|
int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw,
|
||||||
displayCutout);
|
unrotDh);
|
||||||
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh, unrotDw,
|
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh,
|
||||||
displayCutout);
|
unrotDw);
|
||||||
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw, unrotDh,
|
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw,
|
||||||
displayCutout);
|
unrotDh);
|
||||||
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh, unrotDw,
|
sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh,
|
||||||
displayCutout);
|
unrotDw);
|
||||||
return sw;
|
return sw;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int reduceCompatConfigWidthSize(int curSize, int rotation, int uiMode,
|
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,
|
dm.noncompatWidthPixels = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode,
|
||||||
displayCutout);
|
displayCutout);
|
||||||
dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode,
|
dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode,
|
||||||
@@ -1865,20 +1866,20 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
|
int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
|
||||||
sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode,
|
sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode);
|
||||||
displayInfo.displayCutout);
|
sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode);
|
||||||
sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode,
|
sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode);
|
||||||
displayInfo.displayCutout);
|
sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode);
|
||||||
sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode,
|
|
||||||
displayInfo.displayCutout);
|
|
||||||
sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode,
|
|
||||||
displayInfo.displayCutout);
|
|
||||||
outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density);
|
outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density);
|
||||||
outConfig.screenLayout = sl;
|
outConfig.screenLayout = sl;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int reduceConfigLayout(int curLayout, int rotation, float density, int dw, int dh,
|
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.
|
// Get the app screen size at this rotation.
|
||||||
int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout);
|
int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout);
|
||||||
int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout);
|
int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout);
|
||||||
|
|||||||
Reference in New Issue
Block a user