Merge "Keep initial override configuration from display settings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
e656e67e14
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user