Check the current runtime orientation in updateCompatDisplayInsets

Right now we are checking the static runtime orientation from ActivityInfo in updateCompatDisplayInsets. This can be obsolete, so we need to start checking the current one from the most recent requested configuration.

Fix: 264276741
Test: atest WmTests:ActivityRecordTests
Test: atest WmTests:SizeCompatTests

Change-Id: I0ef411c4eb67f539352d8dbf521a6b9672b47fcc
This commit is contained in:
Vali Calinescu
2023-03-02 15:14:10 +00:00
parent 961c53cb70
commit 0d1a744182
2 changed files with 4 additions and 6 deletions

View File

@@ -8008,9 +8008,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
// The smallest screen width is the short side of screen bounds. Because the bounds
// and density won't be changed, smallestScreenWidthDp is also fixed.
overrideConfig.smallestScreenWidthDp = fullConfig.smallestScreenWidthDp;
// TODO(b/264276741): Check whether the runtime orietnation request is fixed rather than
// the manifest orientation which may be obsolete.
if (info.isFixedOrientation()) {
if (ActivityInfo.isFixedOrientation(getOverrideOrientation())) {
// lock rotation too. When in size-compat, onConfigurationChanged will watch for and
// apply runtime rotation changes.
overrideConfig.windowConfiguration.setRotation(
@@ -8181,7 +8179,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
/**
* @return The orientation to use to understand if reachability is enabled.
*/
@ActivityInfo.ScreenOrientation
@Configuration.Orientation
int getOrientationForReachability() {
return mLetterboxUiController.hasInheritedLetterboxBehavior()
? mLetterboxUiController.getInheritedOrientation()

View File

@@ -1436,7 +1436,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* {@link Configuration#ORIENTATION_PORTRAIT},
* {@link Configuration#ORIENTATION_UNDEFINED}).
*/
@ScreenOrientation
@Configuration.Orientation
int getRequestedConfigurationOrientation() {
return getRequestedConfigurationOrientation(false /* forDisplay */);
}
@@ -1454,7 +1454,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* {@link Configuration#ORIENTATION_PORTRAIT},
* {@link Configuration#ORIENTATION_UNDEFINED}).
*/
@ScreenOrientation
@Configuration.Orientation
int getRequestedConfigurationOrientation(boolean forDisplay) {
int requestedOrientation = getOverrideOrientation();
final RootDisplayArea root = getRootDisplayArea();