Loading services/core/java/com/android/server/wm/DisplayContent.java +6 −2 Original line number Diff line number Diff line Loading @@ -2310,8 +2310,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp @Override public void setWindowingMode(int windowingMode) { super.setWindowingMode(windowingMode); super.setDisplayWindowingMode(windowingMode); // Intentionally call onRequestedOverrideConfigurationChanged() directly to change windowing // mode and display windowing mode atomically. mTmpConfiguration.setTo(getRequestedOverrideConfiguration()); mTmpConfiguration.windowConfiguration.setWindowingMode(windowingMode); mTmpConfiguration.windowConfiguration.setDisplayWindowingMode(windowingMode); onRequestedOverrideConfigurationChanged(mTmpConfiguration); } @Override Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +18 −0 Original line number Diff line number Diff line Loading @@ -1511,6 +1511,24 @@ public class DisplayContentTests extends WindowTestsBase { mDisplayContent.ensureActivitiesVisible(null, 0, false, false); } @Test public void testSetWindowingModeAtomicallyUpdatesWindoingModeAndDisplayWindowingMode() { final DisplayContent dc = createNewDisplay(); final ActivityStack stack = new ActivityTestsBase.StackBuilder(mWm.mAtmService.mRootWindowContainer) .setDisplay(dc) .build(); doAnswer(invocation -> { Object[] args = invocation.getArguments(); final Configuration config = ((Configuration) args[0]); assertEquals(config.windowConfiguration.getWindowingMode(), config.windowConfiguration.getDisplayWindowingMode()); return null; }).when(stack).onConfigurationChanged(any()); dc.setWindowingMode(WINDOWING_MODE_FREEFORM); dc.setWindowingMode(WINDOWING_MODE_FULLSCREEN); } private boolean isOptionsPanelAtRight(int displayId) { return (mWm.getPreferredOptionsPanelGravity(displayId) & Gravity.RIGHT) == Gravity.RIGHT; } Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +6 −2 Original line number Diff line number Diff line Loading @@ -2310,8 +2310,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp @Override public void setWindowingMode(int windowingMode) { super.setWindowingMode(windowingMode); super.setDisplayWindowingMode(windowingMode); // Intentionally call onRequestedOverrideConfigurationChanged() directly to change windowing // mode and display windowing mode atomically. mTmpConfiguration.setTo(getRequestedOverrideConfiguration()); mTmpConfiguration.windowConfiguration.setWindowingMode(windowingMode); mTmpConfiguration.windowConfiguration.setDisplayWindowingMode(windowingMode); onRequestedOverrideConfigurationChanged(mTmpConfiguration); } @Override Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +18 −0 Original line number Diff line number Diff line Loading @@ -1511,6 +1511,24 @@ public class DisplayContentTests extends WindowTestsBase { mDisplayContent.ensureActivitiesVisible(null, 0, false, false); } @Test public void testSetWindowingModeAtomicallyUpdatesWindoingModeAndDisplayWindowingMode() { final DisplayContent dc = createNewDisplay(); final ActivityStack stack = new ActivityTestsBase.StackBuilder(mWm.mAtmService.mRootWindowContainer) .setDisplay(dc) .build(); doAnswer(invocation -> { Object[] args = invocation.getArguments(); final Configuration config = ((Configuration) args[0]); assertEquals(config.windowConfiguration.getWindowingMode(), config.windowConfiguration.getDisplayWindowingMode()); return null; }).when(stack).onConfigurationChanged(any()); dc.setWindowingMode(WINDOWING_MODE_FREEFORM); dc.setWindowingMode(WINDOWING_MODE_FULLSCREEN); } private boolean isOptionsPanelAtRight(int displayId) { return (mWm.getPreferredOptionsPanelGravity(displayId) & Gravity.RIGHT) == Gravity.RIGHT; } Loading