diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 3ee7ee7a42760..ce2ae2a420696 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -1436,15 +1436,6 @@ class Task extends WindowContainer { mAtmService.getTaskChangeNotificationController().notifyTaskStackChanged(); } - final boolean isRootTask = isRootTask(); - if (isRootTask) { - final DisplayContent display = getDisplayContent(); - if (display.isSingleTaskInstance()) { - mAtmService.notifySingleTaskDisplayEmpty(display.mDisplayId); - } - display.mDisplayContent.setLayoutNeeded(); - } - if (hasChild()) { updateEffectiveIntent(); @@ -1465,7 +1456,7 @@ class Task extends WindowContainer { } else if (!mReuseTask && !mCreatedByOrganizer) { // Remove entire task if it doesn't have any activity left and it isn't marked for reuse // or created by task organizer. - if (!isRootTask) { + if (!isRootTask()) { getStack().removeChild(this, reason); } EventLogTags.writeWmTaskRemoved(mTaskId, @@ -2817,6 +2808,10 @@ class Task extends WindowContainer { if (DEBUG_STACK) Slog.i(TAG, "removeTask: removing taskId=" + mTaskId); EventLogTags.writeWmTaskRemoved(mTaskId, "removeTask"); + if (mDisplayContent != null && mDisplayContent.isSingleTaskInstance()) { + mAtmService.notifySingleTaskDisplayEmpty(mDisplayContent.mDisplayId); + } + // If applicable let the TaskOrganizer know the Task is vanishing. setTaskOrganizer(null); diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml index 30df0d4b4ad91..4040fa6a675e2 100644 --- a/services/tests/wmtests/AndroidManifest.xml +++ b/services/tests/wmtests/AndroidManifest.xml @@ -54,6 +54,8 @@ +