Merge "Keep initial override configuration from display settings"

This commit is contained in:
TreeHugger Robot
2018-11-29 17:28:39 +00:00
committed by Android (Google) Code Review
3 changed files with 23 additions and 0 deletions

View File

@@ -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;

View File

@@ -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;
}
@@ -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(
@@ -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) {

View File

@@ -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
@@ -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) {}
}