Merge "Compute size range before setting DisplayInfoOverride" into qt-dev
This commit is contained in:
@@ -1480,7 +1480,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
// the top of the method, the caller is obligated to call computeNewConfigurationLocked().
|
||||
// By updating the Display info here it will be available to
|
||||
// #computeScreenConfiguration() later.
|
||||
updateDisplayAndOrientation(getConfiguration().uiMode);
|
||||
updateDisplayAndOrientation(getConfiguration().uiMode, null /* outConfig */);
|
||||
|
||||
// NOTE: We disable the rotation in the emulator because
|
||||
// it doesn't support hardware OpenGL emulation yet.
|
||||
@@ -1578,7 +1578,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
* changed.
|
||||
* Do not call if {@link WindowManagerService#mDisplayReady} == false.
|
||||
*/
|
||||
private DisplayInfo updateDisplayAndOrientation(int uiMode) {
|
||||
private DisplayInfo updateDisplayAndOrientation(int uiMode, Configuration outConfig) {
|
||||
// Use the effective "visual" dimensions based on current rotation
|
||||
final boolean rotated = (mRotation == ROTATION_90 || mRotation == ROTATION_270);
|
||||
final int dw = rotated ? mBaseDisplayHeight : mBaseDisplayWidth;
|
||||
@@ -1610,6 +1610,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
mDisplayInfo.flags &= ~Display.FLAG_SCALING_DISABLED;
|
||||
}
|
||||
|
||||
computeSizeRangesAndScreenLayout(mDisplayInfo, rotated, uiMode, dw, dh,
|
||||
mDisplayMetrics.density, outConfig);
|
||||
|
||||
// We usually set the override info in DisplayManager so that we get consistent display
|
||||
// metrics values when displays are changing and don't send out new values until WM is aware
|
||||
// of them. However, we don't do this for displays that serve as containers for ActivityView
|
||||
@@ -1658,7 +1661,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
* Do not call if mDisplayReady == false.
|
||||
*/
|
||||
void computeScreenConfiguration(Configuration config) {
|
||||
final DisplayInfo displayInfo = updateDisplayAndOrientation(config.uiMode);
|
||||
final DisplayInfo displayInfo = updateDisplayAndOrientation(config.uiMode, config);
|
||||
calculateBounds(displayInfo, mTmpBounds);
|
||||
config.windowConfiguration.setBounds(mTmpBounds);
|
||||
|
||||
@@ -1688,9 +1691,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
final boolean rotated = (displayInfo.rotation == Surface.ROTATION_90
|
||||
|| displayInfo.rotation == Surface.ROTATION_270);
|
||||
|
||||
computeSizeRangesAndScreenLayout(displayInfo, rotated, config.uiMode, dw, dh, density,
|
||||
config);
|
||||
|
||||
config.screenLayout = (config.screenLayout & ~Configuration.SCREENLAYOUT_ROUND_MASK)
|
||||
| ((displayInfo.flags & Display.FLAG_ROUND) != 0
|
||||
? Configuration.SCREENLAYOUT_ROUND_YES
|
||||
@@ -1844,6 +1844,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
||||
adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_90, uiMode, unrotDh, unrotDw);
|
||||
adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_180, uiMode, unrotDw, unrotDh);
|
||||
adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_270, uiMode, unrotDh, unrotDw);
|
||||
|
||||
if (outConfig == null) {
|
||||
return;
|
||||
}
|
||||
int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
|
||||
sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode,
|
||||
displayInfo.displayCutout);
|
||||
|
||||
Reference in New Issue
Block a user