Loading services/core/java/com/android/server/wm/ActivityDisplay.java +5 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,11 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> mWindowContainerController.onDisplayChanged(); } @Override public void onInitializeOverrideConfiguration(Configuration config) { getOverrideConfiguration().updateFrom(config); } void addChild(ActivityStack stack, int position) { if (position == POSITION_BOTTOM) { position = 0; Loading services/core/java/com/android/server/wm/RootWindowContainer.java +15 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> final DisplayContent existing = getDisplayContent(displayId); if (existing != null) { initializeDisplayOverrideConfiguration(controller, existing); existing.setController(controller); return existing; } Loading @@ -242,6 +243,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Adding display=" + display); mService.mDisplayWindowSettings.applySettingsToDisplayLocked(dc); initializeDisplayOverrideConfiguration(controller, dc); if (mService.mDisplayManagerInternal != null) { mService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager( Loading @@ -254,6 +256,19 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return dc; } /** * The display content may have configuration set from {@link #DisplayWindowSettings}. This * callback let the owner of container know there is existing configuration to prevent the * values from being replaced by the initializing {@link #ActivityDisplay}. */ private void initializeDisplayOverrideConfiguration(DisplayWindowController controller, DisplayContent displayContent) { if (controller != null && controller.mListener != null) { controller.mListener.onInitializeOverrideConfiguration( displayContent.getOverrideConfiguration()); } } boolean isLayoutNeeded() { final int numDisplays = mChildren.size(); for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) { Loading services/core/java/com/android/server/wm/WindowContainerListener.java +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.wm; import android.content.res.Configuration; /** * Interface used by the owner/creator of the container to listen to changes with the container. * @see WindowContainerController Loading @@ -23,4 +25,5 @@ package com.android.server.wm; public interface WindowContainerListener { void registerConfigurationChangeListener(ConfigurationContainerListener listener); void unregisterConfigurationChangeListener(ConfigurationContainerListener listener); default void onInitializeOverrideConfiguration(Configuration config) {} } Loading
services/core/java/com/android/server/wm/ActivityDisplay.java +5 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,11 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> mWindowContainerController.onDisplayChanged(); } @Override public void onInitializeOverrideConfiguration(Configuration config) { getOverrideConfiguration().updateFrom(config); } void addChild(ActivityStack stack, int position) { if (position == POSITION_BOTTOM) { position = 0; Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +15 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> final DisplayContent existing = getDisplayContent(displayId); if (existing != null) { initializeDisplayOverrideConfiguration(controller, existing); existing.setController(controller); return existing; } Loading @@ -242,6 +243,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Adding display=" + display); mService.mDisplayWindowSettings.applySettingsToDisplayLocked(dc); initializeDisplayOverrideConfiguration(controller, dc); if (mService.mDisplayManagerInternal != null) { mService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager( Loading @@ -254,6 +256,19 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return dc; } /** * The display content may have configuration set from {@link #DisplayWindowSettings}. This * callback let the owner of container know there is existing configuration to prevent the * values from being replaced by the initializing {@link #ActivityDisplay}. */ private void initializeDisplayOverrideConfiguration(DisplayWindowController controller, DisplayContent displayContent) { if (controller != null && controller.mListener != null) { controller.mListener.onInitializeOverrideConfiguration( displayContent.getOverrideConfiguration()); } } boolean isLayoutNeeded() { final int numDisplays = mChildren.size(); for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) { Loading
services/core/java/com/android/server/wm/WindowContainerListener.java +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.wm; import android.content.res.Configuration; /** * Interface used by the owner/creator of the container to listen to changes with the container. * @see WindowContainerController Loading @@ -23,4 +25,5 @@ package com.android.server.wm; public interface WindowContainerListener { void registerConfigurationChangeListener(ConfigurationContainerListener listener); void unregisterConfigurationChangeListener(ConfigurationContainerListener listener); default void onInitializeOverrideConfiguration(Configuration config) {} }