Switch WindowContainer to use ConfigurationContainer
To reduce implementation dupication.
This also involved moving ConfigurationContainer to the wm package.
Test: bit FrameworksServicesTests:com.android.server.wm.ConfigurationContainerTests
Test: bit FrameworksServicesTests:com.android.server.wm.WindowContainerTests
Test: go/wm-smoke
Change-Id: Ibeca7e2ad2685f0984fccc66852d53ed9af0925f
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index 3c84941..889bb9b 100644
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -167,6 +167,7 @@
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.wm.AppWindowContainerController;
import com.android.server.wm.AppWindowContainerListener;
+import com.android.server.wm.ConfigurationContainer;
import com.android.server.wm.TaskWindowContainerController;
import org.xmlpull.v1.XmlPullParser;
@@ -2223,7 +2224,7 @@
}
@Override
- void onOverrideConfigurationChanged(Configuration newConfig) {
+ public void onOverrideConfigurationChanged(Configuration newConfig) {
final Configuration currentConfig = getOverrideConfiguration();
if (currentConfig.equals(newConfig)) {
return;
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 9925ba0..45e8fc3 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -125,6 +125,7 @@
import com.android.internal.os.BatteryStatsImpl;
import com.android.server.Watchdog;
import com.android.server.am.ActivityManagerService.ItemMatcher;
+import com.android.server.wm.ConfigurationContainer;
import com.android.server.wm.StackWindowController;
import com.android.server.wm.StackWindowListener;
import com.android.server.wm.WindowManagerService;
@@ -209,7 +210,7 @@
}
@Override
- void onParentChanged() {
+ protected void onParentChanged() {
super.onParentChanged();
mStackSupervisor.updateUIDsPresentOnDisplay();
}
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 5f42cdb..590cc7c 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -134,7 +134,6 @@
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
-import android.os.ParcelFileDescriptor;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
@@ -167,6 +166,7 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.server.LocalServices;
import com.android.server.am.ActivityStack.ActivityState;
+import com.android.server.wm.ConfigurationContainer;
import com.android.server.wm.PinnedStackWindowController;
import com.android.server.wm.WindowManagerService;
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 5753fbc..64ce1b9 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -53,6 +53,7 @@
import com.android.internal.util.XmlUtils;
import com.android.server.wm.AppWindowContainerController;
+import com.android.server.wm.ConfigurationContainer;
import com.android.server.wm.StackWindowController;
import com.android.server.wm.TaskWindowContainerController;
import com.android.server.wm.TaskWindowContainerListener;
@@ -971,7 +972,7 @@
}
@Override
- void onParentChanged() {
+ protected void onParentChanged() {
super.onParentChanged();
mService.mStackSupervisor.updateUIDsPresentOnDisplay();
}
diff --git a/services/core/java/com/android/server/am/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java
similarity index 87%
rename from services/core/java/com/android/server/am/ConfigurationContainer.java
rename to services/core/java/com/android/server/wm/ConfigurationContainer.java
index 3d60681..64bfbd0 100644
--- a/services/core/java/com/android/server/am/ConfigurationContainer.java
+++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package com.android.server.am;
+package com.android.server.wm;
import android.content.res.Configuration;
@@ -22,9 +22,7 @@
* Contains common logic for classes that have override configurations and are organized in a
* hierarchy.
*/
-// TODO(b/36505427): Move to wm package and have WindowContainer use this instead of having its own
-// implementation for merging configuration.
-abstract class ConfigurationContainer<E extends ConfigurationContainer> {
+public abstract class ConfigurationContainer<E extends ConfigurationContainer> {
/** Contains override configuration settings applied to this configuration container. */
private Configuration mOverrideConfiguration = new Configuration();
@@ -47,7 +45,7 @@
* This method should be used for getting settings applied in each particular level of the
* hierarchy.
*/
- Configuration getConfiguration() {
+ public Configuration getConfiguration() {
return mFullConfiguration;
}
@@ -55,7 +53,7 @@
* Notify that parent config changed and we need to update full configuration.
* @see #mFullConfiguration
*/
- void onConfigurationChanged(Configuration newParentConfig) {
+ public void onConfigurationChanged(Configuration newParentConfig) {
mFullConfiguration.setTo(newParentConfig);
mFullConfiguration.updateFrom(mOverrideConfiguration);
for (int i = getChildCount() - 1; i >= 0; --i) {
@@ -65,7 +63,7 @@
}
/** Returns override configuration applied to this configuration container. */
- Configuration getOverrideConfiguration() {
+ public Configuration getOverrideConfiguration() {
return mOverrideConfiguration;
}
@@ -74,7 +72,7 @@
* @see #mOverrideConfiguration
* @see #mFullConfiguration
*/
- void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
+ public void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
mOverrideConfiguration.setTo(overrideConfiguration);
// Update full configuration of this container and all its children.
final ConfigurationContainer parent = getParent();
@@ -87,7 +85,7 @@
* Get merged override configuration from the top of the hierarchy down to this particular
* instance. This should be reported to client as override config.
*/
- Configuration getMergedOverrideConfiguration() {
+ public Configuration getMergedOverrideConfiguration() {
return mMergedOverrideConfiguration;
}
@@ -97,7 +95,7 @@
* override config.
* @see #mMergedOverrideConfiguration
*/
- private void onMergedOverrideConfigurationChanged() {
+ void onMergedOverrideConfigurationChanged() {
final ConfigurationContainer parent = getParent();
if (parent != null) {
mMergedOverrideConfiguration.setTo(parent.getMergedOverrideConfiguration());
@@ -114,7 +112,7 @@
/**
* Must be called when new parent for the container was set.
*/
- void onParentChanged() {
+ protected void onParentChanged() {
final ConfigurationContainer parent = getParent();
// Removing parent usually means that we've detached this entity to destroy it or to attach
// to another parent. In both cases we don't need to update the configuration now.
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index a37b2e5..dff963a 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1446,7 +1446,7 @@
}
@VisibleForTesting
- int getStaskPosById(int stackId) {
+ int getStackPosById(int stackId) {
for (int i = mTaskStackContainers.size() - 1; i >= 0; --i) {
final TaskStack stack = mTaskStackContainers.get(i);
if (stack.mStackId == stackId) {
@@ -1457,7 +1457,7 @@
}
@Override
- void onConfigurationChanged(Configuration newParentConfig) {
+ public void onConfigurationChanged(Configuration newParentConfig) {
super.onConfigurationChanged(newParentConfig);
// The display size information is heavily dependent on the resources in the current
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 233e75b..0d6c7e3 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -359,7 +359,7 @@
}
@Override
- void onConfigurationChanged(Configuration newParentConfig) {
+ public void onConfigurationChanged(Configuration newParentConfig) {
prepareFreezingTaskBounds();
super.onConfigurationChanged(newParentConfig);
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 600bc5c..018f738 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -38,7 +38,8 @@
* The test class is {@link WindowContainerTests} which must be kept up-to-date and ran anytime
* changes are made to this class.
*/
-class WindowContainer<E extends WindowContainer> implements Comparable<WindowContainer> {
+class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<E>
+ implements Comparable<WindowContainer> {
static final int POSITION_TOP = Integer.MAX_VALUE;
static final int POSITION_BOTTOM = Integer.MIN_VALUE;
@@ -54,22 +55,6 @@
// screen with the top-most window container at the tail of the list.
protected final WindowList<E> mChildren = new WindowList<E>();
- /** Contains override configuration settings applied to this window container. */
- private Configuration mOverrideConfiguration = new Configuration();
-
- /**
- * Contains full configuration applied to this window container. Corresponds to full parent's
- * config with applied {@link #mOverrideConfiguration}.
- */
- private Configuration mFullConfiguration = new Configuration();
-
- /**
- * Contains merged override configuration settings from the top of the hierarchy down to this
- * particular instance. It is different from {@link #mFullConfiguration} because it starts from
- * topmost container's override config instead of global config.
- */
- private Configuration mMergedOverrideConfiguration = new Configuration();
-
// The specified orientation for this window container.
protected int mOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
@@ -79,17 +64,29 @@
// The owner/creator for this container. No controller if null.
private WindowContainerController mController;
+ @Override
final protected WindowContainer getParent() {
return mParent;
}
+
+ @Override
+ final protected int getChildCount() {
+ return mChildren.size();
+ }
+
+ @Override
+ final protected E getChildAt(int index) {
+ return mChildren.get(index);
+ }
+
final protected void setParent(WindowContainer parent) {
mParent = parent;
// Removing parent usually means that we've detached this entity to destroy it or to attach
// to another parent. In both cases we don't need to update the configuration now.
if (mParent != null) {
// Update full configuration of this container and all its children.
- onConfigurationChanged(mParent.mFullConfiguration);
+ onConfigurationChanged(mParent.getConfiguration());
// Update merged override configuration of this container and all its children.
onMergedOverrideConfigurationChanged();
}
@@ -282,44 +279,13 @@
}
/**
- * Returns full configuration applied to this window container.
- * This method should be used for getting settings applied in each particular level of the
- * hierarchy.
- */
- Configuration getConfiguration() {
- return mFullConfiguration;
- }
-
- /**
- * Notify that parent config changed and we need to update full configuration.
- * @see #mFullConfiguration
- */
- void onConfigurationChanged(Configuration newParentConfig) {
- mFullConfiguration.setTo(newParentConfig);
- mFullConfiguration.updateFrom(mOverrideConfiguration);
- for (int i = mChildren.size() - 1; i >= 0; --i) {
- final WindowContainer child = mChildren.get(i);
- child.onConfigurationChanged(mFullConfiguration);
- }
- }
-
- /** Returns override configuration applied to this window container. */
- Configuration getOverrideConfiguration() {
- return mOverrideConfiguration;
- }
-
- /**
* Update override configuration and recalculate full config.
* @see #mOverrideConfiguration
* @see #mFullConfiguration
*/
- void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
- mOverrideConfiguration.setTo(overrideConfiguration);
- // Update full configuration of this container and all its children.
- onConfigurationChanged(mParent != null ? mParent.getConfiguration() : EMPTY);
- // Update merged override config of this container and all its children.
- onMergedOverrideConfigurationChanged();
-
+ @Override
+ final public void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
+ super.onOverrideConfigurationChanged(overrideConfiguration);
if (mParent != null) {
mParent.onDescendantOverrideConfigurationChanged();
}
@@ -335,33 +301,6 @@
}
/**
- * Get merged override configuration from the top of the hierarchy down to this
- * particular instance. This should be reported to client as override config.
- */
- Configuration getMergedOverrideConfiguration() {
- return mMergedOverrideConfiguration;
- }
-
- /**
- * Update merged override configuration based on corresponding parent's config and notify all
- * its children. If there is no parent, merged override configuration will set equal to current
- * override config.
- * @see #mMergedOverrideConfiguration
- */
- private void onMergedOverrideConfigurationChanged() {
- if (mParent != null) {
- mMergedOverrideConfiguration.setTo(mParent.getMergedOverrideConfiguration());
- mMergedOverrideConfiguration.updateFrom(mOverrideConfiguration);
- } else {
- mMergedOverrideConfiguration.setTo(mOverrideConfiguration);
- }
- for (int i = mChildren.size() - 1; i >= 0; --i) {
- final WindowContainer child = mChildren.get(i);
- child.onMergedOverrideConfigurationChanged();
- }
- }
-
- /**
* Notify that the display this container is on has changed.
* @param dc The new display this container is on.
*/
diff --git a/services/tests/servicestests/src/com/android/server/am/ConfigurationContainerTests.java b/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java
similarity index 94%
rename from services/tests/servicestests/src/com/android/server/am/ConfigurationContainerTests.java
rename to services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java
index fd2fb4b..0f9b721 100644
--- a/services/tests/servicestests/src/com/android/server/am/ConfigurationContainerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/ConfigurationContainerTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License
*/
-package com.android.server.am;
+package com.android.server.wm;
import org.junit.Test;
@@ -35,12 +35,10 @@
import static org.junit.Assert.assertEquals;
/**
- * Test class for {@link ConfigurationContainer}. Mostly duplicates configuration tests from
- * {@link com.android.server.wm.WindowContainerTests}.
+ * Test class for {@link ConfigurationContainer}.
*
- * Build: mmma -j32 frameworks/base/services/tests/servicestests
- * Install: adb install -r out/target/product/$TARGET_PRODUCT/data/app/FrameworksServicesTests/FrameworksServicesTests.apk
- * Run: adb shell am instrument -w -e class com.android.server.am.ConfigurationContainerTests com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
+ * Build/Install/Run:
+ * bit FrameworksServicesTests:com.android.server.wm.ConfigurationContainerTests
*/
@SmallTest
@Presubmit
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
index 856e940..3e9fd18 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
@@ -301,14 +301,14 @@
createStackControllerOnStackOnDisplay(PINNED_STACK_ID, mDisplayContent);
final int initialStackCount = mDisplayContent.getStackCount();
// Ensure that the pinned stack was placed at the end
- assertEquals(initialStackCount - 1, mDisplayContent.getStaskPosById(PINNED_STACK_ID));
+ assertEquals(initialStackCount - 1, mDisplayContent.getStackPosById(PINNED_STACK_ID));
// By default, this should try to create a new stack on top
createTaskStackOnDisplay(mDisplayContent);
final int afterStackCount = mDisplayContent.getStackCount();
// Make sure the stack count has increased
assertEquals(initialStackCount + 1, afterStackCount);
// Ensure that the pinned stack is still on top
- assertEquals(afterStackCount - 1, mDisplayContent.getStaskPosById(PINNED_STACK_ID));
+ assertEquals(afterStackCount - 1, mDisplayContent.getStackPosById(PINNED_STACK_ID));
}
/**
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java
index a7d594c..16b6ca6 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java
@@ -559,168 +559,6 @@
assertEquals(1, child2223.compareTo(child21));
}
- @Test
- public void testConfigurationInit() throws Exception {
- final TestWindowContainerBuilder builder = new TestWindowContainerBuilder();
-
- // Check root container initial config.
- final TestWindowContainer root = builder.setLayer(0).build();
- assertEquals(Configuration.EMPTY, root.getOverrideConfiguration());
- assertEquals(Configuration.EMPTY, root.getMergedOverrideConfiguration());
- assertEquals(Configuration.EMPTY, root.getConfiguration());
-
- // Check child initial config.
- final TestWindowContainer child1 = root.addChildWindow();
- assertEquals(Configuration.EMPTY, child1.getOverrideConfiguration());
- assertEquals(Configuration.EMPTY, child1.getMergedOverrideConfiguration());
- assertEquals(Configuration.EMPTY, child1.getConfiguration());
-
- // Check child initial config if root has overrides.
- final Configuration rootOverrideConfig = new Configuration();
- rootOverrideConfig.fontScale = 1.3f;
- root.onOverrideConfigurationChanged(rootOverrideConfig);
- final TestWindowContainer child2 = root.addChildWindow();
- assertEquals(Configuration.EMPTY, child2.getOverrideConfiguration());
- assertEquals(rootOverrideConfig, child2.getMergedOverrideConfiguration());
- assertEquals(rootOverrideConfig, child2.getConfiguration());
-
- // Check child initial config if root has parent config set.
- final Configuration rootParentConfig = new Configuration();
- rootParentConfig.fontScale = 0.8f;
- rootParentConfig.orientation = SCREEN_ORIENTATION_LANDSCAPE;
- root.onConfigurationChanged(rootParentConfig);
- final Configuration rootFullConfig = new Configuration(rootParentConfig);
- rootFullConfig.updateFrom(rootOverrideConfig);
-
- final TestWindowContainer child3 = root.addChildWindow();
- assertEquals(Configuration.EMPTY, child3.getOverrideConfiguration());
- assertEquals(rootOverrideConfig, child3.getMergedOverrideConfiguration());
- assertEquals(rootFullConfig, child3.getConfiguration());
- }
-
- @Test
- public void testConfigurationChangeOnAddRemove() throws Exception {
- final TestWindowContainerBuilder builder = new TestWindowContainerBuilder();
-
- // Init root's config.
- final TestWindowContainer root = builder.setLayer(0).build();
- final Configuration rootOverrideConfig = new Configuration();
- rootOverrideConfig.fontScale = 1.3f;
- root.onOverrideConfigurationChanged(rootOverrideConfig);
-
- // Init child's config.
- final TestWindowContainer child = root.addChildWindow();
- final Configuration childOverrideConfig = new Configuration();
- childOverrideConfig.densityDpi = 320;
- child.onOverrideConfigurationChanged(childOverrideConfig);
- final Configuration mergedOverrideConfig = new Configuration(root.getConfiguration());
- mergedOverrideConfig.updateFrom(childOverrideConfig);
-
- // Check configuration update when child is removed from parent - it should remain same.
- root.removeChild(child);
- assertEquals(childOverrideConfig, child.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig, child.getMergedOverrideConfiguration());
- assertEquals(mergedOverrideConfig, child.getConfiguration());
-
- // It may be paranoia... but let's check if parent's config didn't change after removal.
- assertEquals(rootOverrideConfig, root.getOverrideConfiguration());
- assertEquals(rootOverrideConfig, root.getMergedOverrideConfiguration());
- assertEquals(rootOverrideConfig, root.getConfiguration());
-
- // Init different root
- final TestWindowContainer root2 = builder.setLayer(0).build();
- final Configuration rootOverrideConfig2 = new Configuration();
- rootOverrideConfig2.fontScale = 1.1f;
- root2.onOverrideConfigurationChanged(rootOverrideConfig2);
-
- // Check configuration update when child is added to different parent.
- mergedOverrideConfig.setTo(rootOverrideConfig2);
- mergedOverrideConfig.updateFrom(childOverrideConfig);
- root2.addChildWindow(child);
- assertEquals(childOverrideConfig, child.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig, child.getMergedOverrideConfiguration());
- assertEquals(mergedOverrideConfig, child.getConfiguration());
- }
-
- @Test
- public void testConfigurationChangePropagation() throws Exception {
- final TestWindowContainerBuilder builder = new TestWindowContainerBuilder();
-
- // Builds 3-level vertical hierarchy with one window container on each level.
- // In addition to different overrides on each level, everyone in hierarchy will have one
- // common overridden value - orientation;
-
- // Init root's config.
- final TestWindowContainer root = builder.setLayer(0).build();
- final Configuration rootOverrideConfig = new Configuration();
- rootOverrideConfig.fontScale = 1.3f;
- rootOverrideConfig.orientation = SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
- root.onOverrideConfigurationChanged(rootOverrideConfig);
-
- // Init children.
- final TestWindowContainer child1 = root.addChildWindow();
- final Configuration childOverrideConfig1 = new Configuration();
- childOverrideConfig1.densityDpi = 320;
- childOverrideConfig1.orientation = SCREEN_ORIENTATION_LANDSCAPE;
- child1.onOverrideConfigurationChanged(childOverrideConfig1);
-
- final TestWindowContainer child2 = child1.addChildWindow();
- final Configuration childOverrideConfig2 = new Configuration();
- childOverrideConfig2.screenWidthDp = 150;
- childOverrideConfig2.orientation = SCREEN_ORIENTATION_PORTRAIT;
- child2.onOverrideConfigurationChanged(childOverrideConfig2);
-
- // Check configuration on all levels when root override is updated.
- rootOverrideConfig.smallestScreenWidthDp = 200;
- root.onOverrideConfigurationChanged(rootOverrideConfig);
-
- final Configuration mergedOverrideConfig1 = new Configuration(rootOverrideConfig);
- mergedOverrideConfig1.updateFrom(childOverrideConfig1);
- final Configuration mergedConfig1 = new Configuration(mergedOverrideConfig1);
-
- final Configuration mergedOverrideConfig2 = new Configuration(mergedOverrideConfig1);
- mergedOverrideConfig2.updateFrom(childOverrideConfig2);
- final Configuration mergedConfig2 = new Configuration(mergedOverrideConfig2);
-
- assertEquals(rootOverrideConfig, root.getOverrideConfiguration());
- assertEquals(rootOverrideConfig, root.getMergedOverrideConfiguration());
- assertEquals(rootOverrideConfig, root.getConfiguration());
-
- assertEquals(childOverrideConfig1, child1.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig1, child1.getMergedOverrideConfiguration());
- assertEquals(mergedConfig1, child1.getConfiguration());
-
- assertEquals(childOverrideConfig2, child2.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig2, child2.getMergedOverrideConfiguration());
- assertEquals(mergedConfig2, child2.getConfiguration());
-
- // Check configuration on all levels when root parent config is updated.
- final Configuration rootParentConfig = new Configuration();
- rootParentConfig.screenHeightDp = 100;
- rootParentConfig.orientation = SCREEN_ORIENTATION_REVERSE_PORTRAIT;
- root.onConfigurationChanged(rootParentConfig);
- final Configuration mergedRootConfig = new Configuration(rootParentConfig);
- mergedRootConfig.updateFrom(rootOverrideConfig);
-
- mergedConfig1.setTo(mergedRootConfig);
- mergedConfig1.updateFrom(mergedOverrideConfig1);
-
- mergedConfig2.setTo(mergedConfig1);
- mergedConfig2.updateFrom(mergedOverrideConfig2);
-
- assertEquals(rootOverrideConfig, root.getOverrideConfiguration());
- assertEquals(rootOverrideConfig, root.getMergedOverrideConfiguration());
- assertEquals(mergedRootConfig, root.getConfiguration());
-
- assertEquals(childOverrideConfig1, child1.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig1, child1.getMergedOverrideConfiguration());
- assertEquals(mergedConfig1, child1.getConfiguration());
-
- assertEquals(childOverrideConfig2, child2.getOverrideConfiguration());
- assertEquals(mergedOverrideConfig2, child2.getMergedOverrideConfiguration());
- assertEquals(mergedConfig2, child2.getConfiguration());
- }
-
/* Used so we can gain access to some protected members of the {@link WindowContainer} class */
private class TestWindowContainer extends WindowContainer<TestWindowContainer> {
private final int mLayer;
@@ -779,10 +617,6 @@
return addChildWindow(new TestWindowContainerBuilder().setLayer(1));
}
- TestWindowContainer getChildAt(int index) {
- return mChildren.get(index);
- }
-
@Override
void onParentSet() {
mOnParentSetCalled = true;