From c443afb5b6c7780ad00ee58985e121eda3b3fb4c Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Mon, 26 Apr 2021 16:15:19 +0800 Subject: [PATCH] Only add one starting window for a task when unlock. While unlock device, there will call showStartingWindow for every visible activites, which is not necessary because there will only need one starting window for each task. Bug: 185318171 Test: atest ActivityRecordTests Change-Id: I417e0b516de388373d49dc68f1ce6cf52dd1fd3e --- .../core/java/com/android/server/wm/RootWindowContainer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index d9c5fa43d9e40..dc079880d2aa8 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -2657,9 +2657,12 @@ class RootWindowContainer extends WindowContainer } void addStartingWindowsForVisibleActivities() { + final ArrayList addedTasks = new ArrayList<>(); forAllActivities((r) -> { - if (r.mVisibleRequested) { + final Task task = r.getTask(); + if (r.mVisibleRequested && r.mStartingData == null && !addedTasks.contains(task)) { r.showStartingWindow(true /*taskSwitch*/); + addedTasks.add(task); } }); }