diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 9 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 03d6c2cab828..ae10ce3690aa 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -5149,8 +5149,13 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp /** @return the orientation of the display when it's rotation is ROTATION_0. */ int getNaturalOrientation() { - return mBaseDisplayWidth < mBaseDisplayHeight - ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE; + final Configuration config = getConfiguration(); + if (config.windowConfiguration.getDisplayRotation() == ROTATION_0) { + return config.orientation; + } + final Rect frame = mDisplayPolicy.getDecorInsetsInfo( + ROTATION_0, mBaseDisplayWidth, mBaseDisplayHeight).mConfigFrame; + return frame.width() <= frame.height() ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE; } void performLayout(boolean initial, boolean updateInputWindows) { diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java index 71d2504e1746..dfe79bf1e3e6 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java @@ -993,7 +993,9 @@ public class DisplayContentTests extends WindowTestsBase { dc.getDisplayPolicy().getDecorInsetsInfo(ROTATION_0, dc.mBaseDisplayHeight, dc.mBaseDisplayWidth).mConfigFrame.set(0, 0, 1000, 990); dc.computeScreenConfiguration(config, ROTATION_0); + dc.onRequestedOverrideConfigurationChanged(config); assertEquals(Configuration.ORIENTATION_LANDSCAPE, config.orientation); + assertEquals(Configuration.ORIENTATION_LANDSCAPE, dc.getNaturalOrientation()); } @Test |