Sort flattened tasks based on last active time
Test: m Flag: com.android.launcher3.enable_alt_tab_kqs_flatenning Bug: 382769617 Change-Id: I1b7de34fbef9dd90c8d99ae9893ba71dcf565bc7
This commit is contained in:
1 parent
c19475ceef
commit
d6c2964922
1 file changed
+12
-1
@@ -45,6 +45,7 @@ import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
@@ -271,13 +272,23 @@ public final class KeyboardQuickSwitchController implements
|
||||
.filter(task -> !shouldExcludeTask(task, taskIdsToExclude))
|
||||
.toList();
|
||||
|
||||
// TODO(b/382769617): Sort tasks, including desktop and split, before limiting to max.
|
||||
mTasks = allTasks.stream()
|
||||
.sorted(combinedTasksComparator())
|
||||
.limit(MAX_TASKS)
|
||||
.toList();
|
||||
mNumHiddenTasks = Math.max(0, allTasks.size() - MAX_TASKS);
|
||||
}
|
||||
|
||||
private static Comparator<GroupTask> combinedTasksComparator() {
|
||||
return Comparator.comparingLong((GroupTask groupTask) ->
|
||||
groupTask.getTasks().stream()
|
||||
.map(task -> task.key.lastActiveTime)
|
||||
.max(Comparator.naturalOrder())
|
||||
// Empty tasks list shouldn't be possible so return -1 in that case.
|
||||
.orElse(-1L))
|
||||
.reversed();
|
||||
}
|
||||
|
||||
private void processLoadedTasksOutsideDesktop(List<GroupTask> tasks,
|
||||
Set<Integer> taskIdsToExclude) {
|
||||
// Only store MAX_TASK tasks, from most to least recent
|
||||
|
||||
Reference in new issue
Block a user