diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 6 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TaskTests.java | 12 |
2 files changed, 13 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index cc72dcfb0be2..3facfd4837c8 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3766,11 +3766,7 @@ class Task extends WindowContainer<WindowContainer> { if (r == null) { return null; } - final Task task = r.getRootTask(); - if (task != null && r.isDescendantOf(task)) { - if (task != this) Slog.w(TAG, "Illegal state! task does not point to stack it is in. " - + "stack=" + this + " task=" + task + " r=" + r - + " callers=" + Debug.getCallers(15, "\n")); + if (r.isDescendantOf(this)) { return r; } return null; diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java index 473c1c57d625..1415c506a1c9 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java @@ -146,4 +146,16 @@ public class TaskTests extends WindowTestsBase { task.setBounds(bounds); assertEquals(new Point(bounds.left, bounds.top), task.getLastSurfacePosition()); } + + @Test + public void testIsInStack() { + final Task task1 = createTaskStackOnDisplay(mDisplayContent); + final Task task2 = createTaskStackOnDisplay(mDisplayContent); + final ActivityRecord activity1 = + WindowTestUtils.createActivityRecordInTask(mDisplayContent, task1); + final ActivityRecord activity2 = + WindowTestUtils.createActivityRecordInTask(mDisplayContent, task2); + assertEquals(activity1, task1.isInTask(activity1)); + assertNull(task1.isInTask(activity2)); + } } |