From ed7fc7970fc82c03d8c83eb45a8b464e3932521e Mon Sep 17 00:00:00 2001 From: Shengsong Tan Date: Tue, 7 Jun 2022 03:54:21 +0000 Subject: [PATCH] Check is leaf task before remove its child containers This CL change the leaf check in removeIfPossilbe(). Previously, after removeImmediately() get called, all child containers will be removed, then isLeafTask() will always return true due to no more child for current entity. Bug: 177858817 Bug: 206556390 Test: CTS Change-Id: Id645fe58442662bb26c98cba488e8d9e684ab4bc --- services/core/java/com/android/server/wm/Task.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 3d127742d7bd3..3b97e637a20a1 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -738,8 +738,9 @@ class Task extends TaskFragment { "removeTask:" + reason + " deferring removing taskId=" + mTaskId); return; } + final boolean isLeafTask = isLeafTask(); removeImmediately(reason); - if (isLeafTask()) { + if (isLeafTask) { mAtmService.getTaskChangeNotificationController().notifyTaskRemoved(mTaskId); final TaskDisplayArea taskDisplayArea = getDisplayArea();