Merge "Atomically apply windowing mode and display windowing mode"
This commit is contained in:
committed by
Android (Google) Code Review
commit
7d610c1cb7
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user