Loading core/java/android/app/ActivityTaskManager.java +11 −1 Original line number Diff line number Diff line Loading @@ -400,8 +400,18 @@ public class ActivityTaskManager { */ public List<ActivityManager.RunningTaskInfo> getTasks( int maxNum, boolean filterOnlyVisibleRecents) { return getTasks(maxNum, filterOnlyVisibleRecents, false /* keepIntentExtra */); } /** * @return List of running tasks that can be filtered by visibility in recents and keep intent * extra. * @hide */ public List<ActivityManager.RunningTaskInfo> getTasks( int maxNum, boolean filterOnlyVisibleRecents, boolean keepIntentExtra) { try { return getService().getTasks(maxNum, filterOnlyVisibleRecents); return getService().getTasks(maxNum, filterOnlyVisibleRecents, keepIntentExtra); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/app/IActivityTaskManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,8 @@ interface IActivityTaskManager { void setFocusedTask(int taskId); boolean removeTask(int taskId); void removeAllVisibleRecentTasks(); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents, boolean keepIntentExtra); void moveTaskToFront(in IApplicationThread app, in String callingPackage, int task, int flags, in Bundle options); ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags, Loading services/core/java/com/android/server/am/ActivityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -5768,7 +5768,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public List<RunningTaskInfo> getTasks(int maxNum) { return mActivityTaskManager.getTasks(maxNum, false /* filterForVisibleRecents */); return mActivityTaskManager.getTasks(maxNum); } @Override Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +18 −5 Original line number Diff line number Diff line Loading @@ -2104,8 +2104,16 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } List<ActivityManager.RunningTaskInfo> getTasks(int maxNum) { return getTasks(maxNum, false /* filterForVisibleRecents */); /** * Gets info of running tasks up to the given number. * * @param maxNum the maximum number of task info returned by this method. If the total number of * running tasks is larger than it then there is no guarantee which task will be * left out. * @return a list of {@link ActivityManager.RunningTaskInfo} with up to {@code maxNum} items */ public List<ActivityManager.RunningTaskInfo> getTasks(int maxNum) { return getTasks(maxNum, false /* filterForVisibleRecents */, false /* keepIntentExtra */); } /** Loading @@ -2114,10 +2122,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { */ @Override public List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents) { boolean filterOnlyVisibleRecents, boolean keepIntentExtra) { final int callingUid = Binder.getCallingUid(); final int callingPid = Binder.getCallingPid(); int flags = filterOnlyVisibleRecents ? RunningTasks.FLAG_FILTER_ONLY_VISIBLE_RECENTS : 0; flags |= (keepIntentExtra ? RunningTasks.FLAG_KEEP_INTENT_EXTRA : 0); final boolean crossUser = isCrossUserAllowed(callingPid, callingUid); flags |= (crossUser ? RunningTasks.FLAG_CROSS_USERS : 0); final int[] profileIds = getUserManager().getProfileIds( UserHandle.getUserId(callingUid), true); ArraySet<Integer> callingProfileIds = new ArraySet<>(); Loading @@ -2130,8 +2142,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (DEBUG_ALL) Slog.v(TAG, "getTasks: max=" + maxNum); final boolean allowed = isGetTasksAllowed("getTasks", callingPid, callingUid); mRootWindowContainer.getRunningTasks(maxNum, list, filterOnlyVisibleRecents, callingUid, allowed, crossUser, callingProfileIds); flags |= (allowed ? RunningTasks.FLAG_ALLOWED : 0); mRootWindowContainer.getRunningTasks( maxNum, list, flags, callingUid, callingProfileIds); } return list; Loading services/core/java/com/android/server/wm/RootWindowContainer.java +3 −4 Original line number Diff line number Diff line Loading @@ -3479,10 +3479,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> @VisibleForTesting void getRunningTasks(int maxNum, List<ActivityManager.RunningTaskInfo> list, boolean filterOnlyVisibleRecents, int callingUid, boolean allowed, boolean crossUser, ArraySet<Integer> profileIds) { mTaskSupervisor.getRunningTasks().getTasks(maxNum, list, filterOnlyVisibleRecents, this, callingUid, allowed, crossUser, profileIds); int flags, int callingUid, ArraySet<Integer> profileIds) { mTaskSupervisor.getRunningTasks().getTasks(maxNum, list, flags, this, callingUid, profileIds); } void startPowerModeLaunchIfNeeded(boolean forceSend, ActivityRecord targetActivity) { Loading Loading
core/java/android/app/ActivityTaskManager.java +11 −1 Original line number Diff line number Diff line Loading @@ -400,8 +400,18 @@ public class ActivityTaskManager { */ public List<ActivityManager.RunningTaskInfo> getTasks( int maxNum, boolean filterOnlyVisibleRecents) { return getTasks(maxNum, filterOnlyVisibleRecents, false /* keepIntentExtra */); } /** * @return List of running tasks that can be filtered by visibility in recents and keep intent * extra. * @hide */ public List<ActivityManager.RunningTaskInfo> getTasks( int maxNum, boolean filterOnlyVisibleRecents, boolean keepIntentExtra) { try { return getService().getTasks(maxNum, filterOnlyVisibleRecents); return getService().getTasks(maxNum, filterOnlyVisibleRecents, keepIntentExtra); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/app/IActivityTaskManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,8 @@ interface IActivityTaskManager { void setFocusedTask(int taskId); boolean removeTask(int taskId); void removeAllVisibleRecentTasks(); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents, boolean keepIntentExtra); void moveTaskToFront(in IApplicationThread app, in String callingPackage, int task, int flags, in Bundle options); ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags, Loading
services/core/java/com/android/server/am/ActivityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -5768,7 +5768,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public List<RunningTaskInfo> getTasks(int maxNum) { return mActivityTaskManager.getTasks(maxNum, false /* filterForVisibleRecents */); return mActivityTaskManager.getTasks(maxNum); } @Override Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +18 −5 Original line number Diff line number Diff line Loading @@ -2104,8 +2104,16 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } List<ActivityManager.RunningTaskInfo> getTasks(int maxNum) { return getTasks(maxNum, false /* filterForVisibleRecents */); /** * Gets info of running tasks up to the given number. * * @param maxNum the maximum number of task info returned by this method. If the total number of * running tasks is larger than it then there is no guarantee which task will be * left out. * @return a list of {@link ActivityManager.RunningTaskInfo} with up to {@code maxNum} items */ public List<ActivityManager.RunningTaskInfo> getTasks(int maxNum) { return getTasks(maxNum, false /* filterForVisibleRecents */, false /* keepIntentExtra */); } /** Loading @@ -2114,10 +2122,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { */ @Override public List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, boolean filterOnlyVisibleRecents) { boolean filterOnlyVisibleRecents, boolean keepIntentExtra) { final int callingUid = Binder.getCallingUid(); final int callingPid = Binder.getCallingPid(); int flags = filterOnlyVisibleRecents ? RunningTasks.FLAG_FILTER_ONLY_VISIBLE_RECENTS : 0; flags |= (keepIntentExtra ? RunningTasks.FLAG_KEEP_INTENT_EXTRA : 0); final boolean crossUser = isCrossUserAllowed(callingPid, callingUid); flags |= (crossUser ? RunningTasks.FLAG_CROSS_USERS : 0); final int[] profileIds = getUserManager().getProfileIds( UserHandle.getUserId(callingUid), true); ArraySet<Integer> callingProfileIds = new ArraySet<>(); Loading @@ -2130,8 +2142,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (DEBUG_ALL) Slog.v(TAG, "getTasks: max=" + maxNum); final boolean allowed = isGetTasksAllowed("getTasks", callingPid, callingUid); mRootWindowContainer.getRunningTasks(maxNum, list, filterOnlyVisibleRecents, callingUid, allowed, crossUser, callingProfileIds); flags |= (allowed ? RunningTasks.FLAG_ALLOWED : 0); mRootWindowContainer.getRunningTasks( maxNum, list, flags, callingUid, callingProfileIds); } return list; Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +3 −4 Original line number Diff line number Diff line Loading @@ -3479,10 +3479,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> @VisibleForTesting void getRunningTasks(int maxNum, List<ActivityManager.RunningTaskInfo> list, boolean filterOnlyVisibleRecents, int callingUid, boolean allowed, boolean crossUser, ArraySet<Integer> profileIds) { mTaskSupervisor.getRunningTasks().getTasks(maxNum, list, filterOnlyVisibleRecents, this, callingUid, allowed, crossUser, profileIds); int flags, int callingUid, ArraySet<Integer> profileIds) { mTaskSupervisor.getRunningTasks().getTasks(maxNum, list, flags, this, callingUid, profileIds); } void startPowerModeLaunchIfNeeded(boolean forceSend, ActivityRecord targetActivity) { Loading