Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4dd9590 authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Add API to get multiple running tasks for split

Bug: 205675364
Change-Id: Ia350e443b6b80ca8af2d546cb35cad23b212d86e
parent 65ce0da8
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -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.
     */