summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-04-20 15:49:43 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-04-20 15:49:43 +0000
commit53e927f890f08d7916ccf1ae2afeb2624561d107 (patch)
tree970336eea607677519c7eb9b56435586c12d3055
parentae4605eee80c26091164d2979d47a69501239edb (diff)
parent7c8a2474f1a77f3e023a8cec4ec5f848fd8b44f0 (diff)
Merge "Consolidate TaskDisplayArea#addStack and TaskDisplayArea#addChild" into rvc-dev
-rw-r--r--services/core/java/com/android/server/wm/TaskDisplayArea.java16
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java8
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java2
3 files changed, 10 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index cb9b332a9f35..25791c762e42 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -267,16 +267,14 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
@Override
void addChild(ActivityStack stack, int position) {
+ if (DEBUG_STACK) Slog.d(TAG_WM, "Set stack=" + stack + " on taskDisplayArea=" + this);
addStackReferenceIfNeeded(stack);
position = findPositionForStack(position, stack, true /* adding */);
super.addChild(stack, position);
mAtmService.updateSleepIfNeededLocked();
- // The reparenting case is handled in WindowContainer.
- if (!stack.mReparenting) {
- mDisplayContent.setLayoutNeeded();
- }
+ positionStackAt(stack, position);
}
@Override
@@ -638,12 +636,6 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
}
}
- void addStack(ActivityStack stack, int position) {
- if (DEBUG_STACK) Slog.d(TAG_WM, "Set stack=" + stack + " on taskDisplayArea=" + this);
- addChild(stack, position);
- positionStackAt(stack, position);
- }
-
void onStackRemoved(ActivityStack stack) {
if (ActivityTaskManagerDebugConfig.DEBUG_STACK) {
Slog.v(TAG_STACK, "removeStack: detaching " + stack + " from displayId="
@@ -787,7 +779,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
}
} else if (stack.getDisplayArea() != this || !stack.isRootTask()) {
if (stack.getParent() == null) {
- addStack(stack, position);
+ addChild(stack, position);
} else {
stack.reparent(this, onTop);
}
@@ -943,7 +935,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
positionStackAtTop((ActivityStack) launchRootTask, false /* includingParents */);
}
} else {
- addStack(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
+ addChild(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
stack.setWindowingMode(windowingMode, true /* creating */);
}
return stack;
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 899ab247077a..f3e2992d5913 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -662,9 +662,11 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
// position that takes into account the removed child (if the index of the
// child < position, then the position should be adjusted). We should consider
// doing this adjustment here and remove any adjustments in the callers.
- mChildren.remove(child);
- mChildren.add(position, child);
- onChildPositionChanged(child);
+ if (mChildren.indexOf(child) != position) {
+ mChildren.remove(child);
+ mChildren.add(position, child);
+ onChildPositionChanged(child);
+ }
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
index 0a6d3f3641fe..93ded1b6b2f3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
@@ -1196,7 +1196,7 @@ public class ActivityStackTests extends ActivityTestsBase {
mDefaultTaskDisplayArea.registerStackOrderChangedListener(listener);
try {
mStack.mReparenting = true;
- mDefaultTaskDisplayArea.addStack(mStack, 0);
+ mDefaultTaskDisplayArea.addChild(mStack, 0);
} finally {
mDefaultTaskDisplayArea.unregisterStackOrderChangedListener(listener);
}