From f7e64649a19ea5d7a89bba4707706a14d74c2c1a Mon Sep 17 00:00:00 2001 From: Ahmed Fakhry Date: Wed, 19 Feb 2025 04:26:15 +0000 Subject: [PATCH] Launcher: Make `RecentTasksController.getRecentTasks()` multi-desks aware This is the Launcher-side CL of the companion CL ag/31825217. This CL changes `GroupedTaskInfo` and `RecentTasksController.getRecentTasks()` such that multiple desktops are supported. Bug: 395911284 Test: m Flag: com.android.window.flags.enable_multiple_desktops_frontend Flag: com.android.window.flags.enable_multiple_desktops_backend Change-Id: I856768d03460054ccd7056f87e16dcb65ced47fb --- .../src/com/android/quickstep/RecentTasksList.java | 4 ++-- .../com/android/quickstep/RecentTasksListTest.java | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/quickstep/src/com/android/quickstep/RecentTasksList.java b/quickstep/src/com/android/quickstep/RecentTasksList.java index bb72408690..561bab4e62 100644 --- a/quickstep/src/com/android/quickstep/RecentTasksList.java +++ b/quickstep/src/com/android/quickstep/RecentTasksList.java @@ -21,7 +21,7 @@ import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; import static com.android.launcher3.Flags.enableSeparateExternalDisplayTasks; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.quickstep.util.SplitScreenUtils.convertShellSplitBoundsToLauncher; -import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FREEFORM; +import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT; import android.app.ActivityManager.RunningTaskInfo; @@ -353,7 +353,7 @@ public class RecentTasksList { int numVisibleTasks = 0; for (GroupedTaskInfo rawTask : rawTasks) { - if (rawTask.isBaseType(TYPE_FREEFORM)) { + if (rawTask.isBaseType(TYPE_DESK)) { // TYPE_FREEFORM tasks is only created when desktop mode can be entered, // leftover TYPE_FREEFORM tasks created when flag was on should be ignored. if (DesktopModeStatus.canEnterDesktopMode(mContext)) { diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/RecentTasksListTest.java b/quickstep/tests/multivalentTests/src/com/android/quickstep/RecentTasksListTest.java index 8b17958177..ad9bbb9534 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/RecentTasksListTest.java +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/RecentTasksListTest.java @@ -177,8 +177,8 @@ public class RecentTasksListTest { createRecentTaskInfo(4 /* taskId */, DEFAULT_DISPLAY), createRecentTaskInfo(5 /* taskId */, 1 /* displayId */), createRecentTaskInfo(6 /* taskId */, 1 /* displayId */)); - GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forFreeformTasks( - tasks, Collections.emptySet() /* minimizedTaskIds */); + GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forDeskTasks( + 0 /* deskId */, tasks, Collections.emptySet() /* minimizedTaskIds */); when(mSystemUiProxy.getRecentTasks(anyInt(), anyInt())) .thenReturn(new ArrayList<>(Collections.singletonList(recentTaskInfos))); @@ -207,8 +207,8 @@ public class RecentTasksListTest { createRecentTaskInfo(4 /* taskId */, DEFAULT_DISPLAY), createRecentTaskInfo(5 /* taskId */, 1 /* displayId */), createRecentTaskInfo(6 /* taskId */, 1 /* displayId */)); - GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forFreeformTasks( - tasks, Collections.emptySet() /* minimizedTaskIds */); + GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forDeskTasks( + 0 /* deskId */, tasks, Collections.emptySet() /* minimizedTaskIds */); when(mSystemUiProxy.getRecentTasks(anyInt(), anyInt())) .thenReturn(new ArrayList<>(Collections.singletonList(recentTaskInfos))); @@ -241,7 +241,8 @@ public class RecentTasksListTest { createRecentTaskInfo(5 /* taskId */, DEFAULT_DISPLAY)); Set minimizedTaskIds = Arrays.stream(new Integer[]{1, 4, 5}).collect(Collectors.toSet()); - GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forFreeformTasks(tasks, minimizedTaskIds); + GroupedTaskInfo recentTaskInfos = GroupedTaskInfo.forDeskTasks( + 0 /* deskId */, tasks, minimizedTaskIds); when(mSystemUiProxy.getRecentTasks(anyInt(), anyInt())) .thenReturn(new ArrayList<>(Collections.singletonList(recentTaskInfos)));