From d854e004dacc78baec1bb922b1bb19068a4a4d74 Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Tue, 20 Apr 2021 14:54:20 +0800 Subject: [PATCH] Also check idle to handle stopping activities Animating activity may not have nowVisible=true (see WindowSgtate#updateReportedVisibility) but it may be already idle. This restores the same condition as before commit edc4294. Bug: 185807984 Test: atest DreamManagerServiceTests# \ testStartTurnScreenOnActivityDoesWake Change-Id: Iaaffb80bd9e1e339d36034bdb6a369562f59a41c --- .../com/android/server/wm/ActivityTaskSupervisor.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 2b1cf395dcd7d..9d225e1ab1f6f 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -2118,8 +2118,14 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { } void scheduleProcessStoppingAndFinishingActivitiesIfNeeded() { - if ((!mStoppingActivities.isEmpty() || !mFinishingActivities.isEmpty()) - && !mHandler.hasMessages(PROCESS_STOPPING_AND_FINISHING_MSG) + if (mStoppingActivities.isEmpty() && mFinishingActivities.isEmpty()) { + return; + } + if (mRootWindowContainer.allResumedActivitiesIdle()) { + scheduleIdle(); + return; + } + if (!mHandler.hasMessages(PROCESS_STOPPING_AND_FINISHING_MSG) && mRootWindowContainer.allResumedActivitiesVisible()) { mHandler.sendEmptyMessage(PROCESS_STOPPING_AND_FINISHING_MSG); }