Add API to get multiple running tasks for split

Bug: 205675364
Change-Id: Ia350e443b6b80ca8af2d546cb35cad23b212d86e
This commit is contained in:
Vinit Nayak
2021-12-15 13:13:31 -08:00
parent 65ce0da897
commit e4dd959073

View File

@@ -61,7 +61,7 @@ import java.util.function.Consumer;
public class ActivityManagerWrapper {
private static final String TAG = "ActivityManagerWrapper";
private static final int NUM_RECENT_ACTIVITIES_REQUEST = 3;
private static final ActivityManagerWrapper sInstance = new ActivityManagerWrapper();
// Should match the values in PhoneWindowManager
@@ -112,6 +112,22 @@ public class ActivityManagerWrapper {
return tasks.get(0);
}
/**
* We ask for {@link #NUM_RECENT_ACTIVITIES_REQUEST} activities because when in split screen,
* we'll get back 2 activities for each split app and one for launcher. Launcher might be more
* "recently" used than one of the split apps so if we only request 2 tasks, then we might miss
* out on one of the split apps
*
* @return an array of up to {@link #NUM_RECENT_ACTIVITIES_REQUEST} running tasks
* filtering only for tasks that can be visible in the recent tasks list.
*/
public ActivityManager.RunningTaskInfo[] getRunningTasks(boolean filterOnlyVisibleRecents) {
// Note: The set of running tasks from the system is ordered by recency
List<ActivityManager.RunningTaskInfo> tasks =
mAtm.getTasks(NUM_RECENT_ACTIVITIES_REQUEST, filterOnlyVisibleRecents);
return tasks.toArray(new RunningTaskInfo[tasks.size()]);
}
/**
* @return a list of the recents tasks.
*/