Loading services/core/java/com/android/server/wm/DisplayContent.java +4 −1 Original line number Diff line number Diff line Loading @@ -5761,7 +5761,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mCurrentOverrideConfigurationChanges = currOverrideConfig.diff(overrideConfiguration); super.onRequestedOverrideConfigurationChanged(overrideConfiguration); mCurrentOverrideConfigurationChanges = 0; mWmService.setNewDisplayOverrideConfiguration(currOverrideConfig, this); if (mWaitingForConfig) { mWaitingForConfig = false; mWmService.mLastFinishedFreezeSource = "new-config"; } mAtmService.addWindowLayoutReasons( ActivityTaskManagerService.LAYOUT_REASON_CONFIG_CHANGED); } Loading services/core/java/com/android/server/wm/RootWindowContainer.java +0 −30 Original line number Diff line number Diff line Loading @@ -637,36 +637,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return null; } /** * Set new display override config. If called for the default display, global configuration * will also be updated. */ void setDisplayOverrideConfigurationIfNeeded(Configuration newConfiguration, @NonNull DisplayContent displayContent) { final Configuration currentConfig = displayContent.getRequestedOverrideConfiguration(); final boolean configChanged = currentConfig.diff(newConfiguration) != 0; if (!configChanged) { return; } displayContent.onRequestedOverrideConfigurationChanged(newConfiguration); if (displayContent.getDisplayId() == DEFAULT_DISPLAY) { // Override configuration of the default display duplicates global config. In this case // we also want to update the global config. setGlobalConfigurationIfNeeded(newConfiguration); } } private void setGlobalConfigurationIfNeeded(Configuration newConfiguration) { final boolean configChanged = getConfiguration().diff(newConfiguration) != 0; if (!configChanged) { return; } onConfigurationChanged(newConfiguration); } @Override void dispatchConfigurationToChild(DisplayContent child, Configuration config) { if (child.isDefaultDisplay) { Loading services/core/java/com/android/server/wm/WindowManagerService.java +0 −10 Original line number Diff line number Diff line Loading @@ -2893,16 +2893,6 @@ public class WindowManagerService extends IWindowManager.Stub } } void setNewDisplayOverrideConfiguration(Configuration overrideConfig, @NonNull DisplayContent dc) { if (dc.mWaitingForConfig) { dc.mWaitingForConfig = false; mLastFinishedFreezeSource = "new-config"; } mRoot.setDisplayOverrideConfigurationIfNeeded(overrideConfig, dc); } // TODO(multi-display): remove when no default display use case. void prepareAppTransitionNone() { if (!checkCallingPermission(MANAGE_APP_TOKENS, "prepareAppTransition()")) { Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +4 −21 Original line number Diff line number Diff line Loading @@ -446,25 +446,6 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals(mDisplayContent, activity.getDisplayContent()); } /** * This tests override configuration updates for display content. */ @Test public void testDisplayOverrideConfigUpdate() { final Configuration currentOverrideConfig = mDisplayContent.getRequestedOverrideConfiguration(); // Create new, slightly changed override configuration and apply it to the display. final Configuration newOverrideConfig = new Configuration(currentOverrideConfig); newOverrideConfig.densityDpi += 120; newOverrideConfig.fontScale += 0.3; mWm.setNewDisplayOverrideConfiguration(newOverrideConfig, mDisplayContent); // Check that override config is applied. assertEquals(newOverrideConfig, mDisplayContent.getRequestedOverrideConfiguration()); } /** * This tests global configuration updates when default display config is updated. */ Loading @@ -478,7 +459,8 @@ public class DisplayContentTests extends WindowTestsBase { newOverrideConfig.densityDpi += 120; newOverrideConfig.fontScale += 0.3; mWm.setNewDisplayOverrideConfiguration(newOverrideConfig, defaultDisplay); defaultDisplay.updateDisplayOverrideConfigurationLocked(newOverrideConfig, null /* starting */, false /* deferResume */, null /* result */); // Check that global configuration is updated, as we've updated default display's config. Configuration globalConfig = mWm.mRoot.getConfiguration(); Loading @@ -486,7 +468,8 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals(newOverrideConfig.fontScale, globalConfig.fontScale, 0.1 /* delta */); // Return back to original values. mWm.setNewDisplayOverrideConfiguration(currentConfig, defaultDisplay); defaultDisplay.updateDisplayOverrideConfigurationLocked(currentConfig, null /* starting */, false /* deferResume */, null /* result */); globalConfig = mWm.mRoot.getConfiguration(); assertEquals(currentConfig.densityDpi, globalConfig.densityDpi); assertEquals(currentConfig.fontScale, globalConfig.fontScale, 0.1 /* delta */); Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +4 −1 Original line number Diff line number Diff line Loading @@ -5761,7 +5761,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mCurrentOverrideConfigurationChanges = currOverrideConfig.diff(overrideConfiguration); super.onRequestedOverrideConfigurationChanged(overrideConfiguration); mCurrentOverrideConfigurationChanges = 0; mWmService.setNewDisplayOverrideConfiguration(currOverrideConfig, this); if (mWaitingForConfig) { mWaitingForConfig = false; mWmService.mLastFinishedFreezeSource = "new-config"; } mAtmService.addWindowLayoutReasons( ActivityTaskManagerService.LAYOUT_REASON_CONFIG_CHANGED); } Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +0 −30 Original line number Diff line number Diff line Loading @@ -637,36 +637,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return null; } /** * Set new display override config. If called for the default display, global configuration * will also be updated. */ void setDisplayOverrideConfigurationIfNeeded(Configuration newConfiguration, @NonNull DisplayContent displayContent) { final Configuration currentConfig = displayContent.getRequestedOverrideConfiguration(); final boolean configChanged = currentConfig.diff(newConfiguration) != 0; if (!configChanged) { return; } displayContent.onRequestedOverrideConfigurationChanged(newConfiguration); if (displayContent.getDisplayId() == DEFAULT_DISPLAY) { // Override configuration of the default display duplicates global config. In this case // we also want to update the global config. setGlobalConfigurationIfNeeded(newConfiguration); } } private void setGlobalConfigurationIfNeeded(Configuration newConfiguration) { final boolean configChanged = getConfiguration().diff(newConfiguration) != 0; if (!configChanged) { return; } onConfigurationChanged(newConfiguration); } @Override void dispatchConfigurationToChild(DisplayContent child, Configuration config) { if (child.isDefaultDisplay) { Loading
services/core/java/com/android/server/wm/WindowManagerService.java +0 −10 Original line number Diff line number Diff line Loading @@ -2893,16 +2893,6 @@ public class WindowManagerService extends IWindowManager.Stub } } void setNewDisplayOverrideConfiguration(Configuration overrideConfig, @NonNull DisplayContent dc) { if (dc.mWaitingForConfig) { dc.mWaitingForConfig = false; mLastFinishedFreezeSource = "new-config"; } mRoot.setDisplayOverrideConfigurationIfNeeded(overrideConfig, dc); } // TODO(multi-display): remove when no default display use case. void prepareAppTransitionNone() { if (!checkCallingPermission(MANAGE_APP_TOKENS, "prepareAppTransition()")) { Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +4 −21 Original line number Diff line number Diff line Loading @@ -446,25 +446,6 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals(mDisplayContent, activity.getDisplayContent()); } /** * This tests override configuration updates for display content. */ @Test public void testDisplayOverrideConfigUpdate() { final Configuration currentOverrideConfig = mDisplayContent.getRequestedOverrideConfiguration(); // Create new, slightly changed override configuration and apply it to the display. final Configuration newOverrideConfig = new Configuration(currentOverrideConfig); newOverrideConfig.densityDpi += 120; newOverrideConfig.fontScale += 0.3; mWm.setNewDisplayOverrideConfiguration(newOverrideConfig, mDisplayContent); // Check that override config is applied. assertEquals(newOverrideConfig, mDisplayContent.getRequestedOverrideConfiguration()); } /** * This tests global configuration updates when default display config is updated. */ Loading @@ -478,7 +459,8 @@ public class DisplayContentTests extends WindowTestsBase { newOverrideConfig.densityDpi += 120; newOverrideConfig.fontScale += 0.3; mWm.setNewDisplayOverrideConfiguration(newOverrideConfig, defaultDisplay); defaultDisplay.updateDisplayOverrideConfigurationLocked(newOverrideConfig, null /* starting */, false /* deferResume */, null /* result */); // Check that global configuration is updated, as we've updated default display's config. Configuration globalConfig = mWm.mRoot.getConfiguration(); Loading @@ -486,7 +468,8 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals(newOverrideConfig.fontScale, globalConfig.fontScale, 0.1 /* delta */); // Return back to original values. mWm.setNewDisplayOverrideConfiguration(currentConfig, defaultDisplay); defaultDisplay.updateDisplayOverrideConfigurationLocked(currentConfig, null /* starting */, false /* deferResume */, null /* result */); globalConfig = mWm.mRoot.getConfiguration(); assertEquals(currentConfig.densityDpi, globalConfig.densityDpi); assertEquals(currentConfig.fontScale, globalConfig.fontScale, 0.1 /* delta */); Loading