Loading core/java/android/app/ActivityManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -1900,7 +1900,7 @@ public class ActivityManager { public List<RunningTaskInfo> getRunningTasks(int maxNum) throws SecurityException { try { return getService().getTasks(maxNum, 0); return getService().getTasks(maxNum); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/app/IActivityManager.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -115,7 +115,9 @@ interface IActivityManager { in PersistableBundle persistentState, in CharSequence description); String getCallingPackage(in IBinder token); ComponentName getCallingActivity(in IBinder token); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, int flags); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum); List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum, int ignoreActivityType, int ignoreWindowingMode); void moveTaskToFront(int task, int flags, in Bundle options); void moveTaskBackwards(int task); int getTaskForActivity(in IBinder token, in boolean onlyRoot); Loading packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -599,8 +599,8 @@ public class PipManager implements BasePipManager { private boolean isSettingsShown() { List<RunningTaskInfo> runningTasks; try { runningTasks = mActivityManager.getTasks(1, 0); if (runningTasks == null || runningTasks.size() == 0) { runningTasks = mActivityManager.getTasks(1); if (runningTasks.isEmpty()) { return false; } } catch (RemoteException e) { Loading packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +9 −17 Original line number Diff line number Diff line Loading @@ -200,26 +200,18 @@ public class SystemServicesProxy { */ public ActivityManager.RunningTaskInfo getRunningTask() { // Note: The set of running tasks from the system is ordered by recency List<ActivityManager.RunningTaskInfo> tasks = mAm.getRunningTasks(10); if (tasks == null || tasks.isEmpty()) { try { List<ActivityManager.RunningTaskInfo> tasks = mIam.getFilteredTasks(1, ACTIVITY_TYPE_RECENTS /* ignoreActivityType */, WINDOWING_MODE_PINNED /* ignoreWindowingMode */); if (tasks.isEmpty()) { return null; } // Find the first task in a valid stack, we ignore everything from the Recents and PiP // stacks for (int i = 0; i < tasks.size(); i++) { final ActivityManager.RunningTaskInfo task = tasks.get(i); final WindowConfiguration winConfig = task.configuration.windowConfiguration; if (winConfig.getActivityType() == ACTIVITY_TYPE_RECENTS) { continue; } if (winConfig.getWindowingMode() == WINDOWING_MODE_PINNED) { continue; } return task; } return tasks.get(0); } catch (RemoteException e) { return null; } } /** * Returns whether the recents activity is currently visible. Loading services/core/java/com/android/server/am/ActivityManagerService.java +15 −7 Original line number Diff line number Diff line Loading @@ -29,11 +29,13 @@ import static android.app.ActivityManager.LOCK_TASK_MODE_NONE; import static android.app.ActivityManager.RESIZE_MODE_PRESERVE_WINDOW; import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.pm.PackageManager.FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS; import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT; import static android.content.pm.PackageManager.FEATURE_LEANBACK_ONLY; Loading Loading @@ -227,6 +229,8 @@ import android.app.PictureInPictureParams; import android.app.ProfilerInfo; import android.app.RemoteAction; import android.app.WaitResult; import android.app.WindowConfiguration.ActivityType; import android.app.WindowConfiguration.WindowingMode; import android.app.admin.DevicePolicyManager; import android.app.assist.AssistContent; import android.app.assist.AssistStructure; Loading Loading @@ -9772,19 +9776,23 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override public List<RunningTaskInfo> getTasks(int maxNum, int flags) { public List<RunningTaskInfo> getTasks(int maxNum) { return getFilteredTasks(maxNum, ACTIVITY_TYPE_UNDEFINED, WINDOWING_MODE_UNDEFINED); } @Override public List<RunningTaskInfo> getFilteredTasks(int maxNum, @ActivityType int ignoreActivityType, @WindowingMode int ignoreWindowingMode) { final int callingUid = Binder.getCallingUid(); ArrayList<RunningTaskInfo> list = new ArrayList<RunningTaskInfo>(); ArrayList<RunningTaskInfo> list = new ArrayList<>(); synchronized(this) { if (DEBUG_ALL) Slog.v( TAG, "getTasks: max=" + maxNum + ", flags=" + flags); if (DEBUG_ALL) Slog.v(TAG, "getTasks: max=" + maxNum); final boolean allowed = isGetTasksAllowed("getTasks", Binder.getCallingPid(), callingUid); // TODO: Improve with MRU list from all ActivityStacks. mStackSupervisor.getTasksLocked(maxNum, list, callingUid, allowed); mStackSupervisor.getRunningTasks(maxNum, list, ignoreActivityType, ignoreWindowingMode, callingUid, allowed); } return list; Loading
core/java/android/app/ActivityManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -1900,7 +1900,7 @@ public class ActivityManager { public List<RunningTaskInfo> getRunningTasks(int maxNum) throws SecurityException { try { return getService().getTasks(maxNum, 0); return getService().getTasks(maxNum); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/app/IActivityManager.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -115,7 +115,9 @@ interface IActivityManager { in PersistableBundle persistentState, in CharSequence description); String getCallingPackage(in IBinder token); ComponentName getCallingActivity(in IBinder token); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, int flags); List<ActivityManager.RunningTaskInfo> getTasks(int maxNum); List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum, int ignoreActivityType, int ignoreWindowingMode); void moveTaskToFront(int task, int flags, in Bundle options); void moveTaskBackwards(int task); int getTaskForActivity(in IBinder token, in boolean onlyRoot); Loading
packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -599,8 +599,8 @@ public class PipManager implements BasePipManager { private boolean isSettingsShown() { List<RunningTaskInfo> runningTasks; try { runningTasks = mActivityManager.getTasks(1, 0); if (runningTasks == null || runningTasks.size() == 0) { runningTasks = mActivityManager.getTasks(1); if (runningTasks.isEmpty()) { return false; } } catch (RemoteException e) { Loading
packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +9 −17 Original line number Diff line number Diff line Loading @@ -200,26 +200,18 @@ public class SystemServicesProxy { */ public ActivityManager.RunningTaskInfo getRunningTask() { // Note: The set of running tasks from the system is ordered by recency List<ActivityManager.RunningTaskInfo> tasks = mAm.getRunningTasks(10); if (tasks == null || tasks.isEmpty()) { try { List<ActivityManager.RunningTaskInfo> tasks = mIam.getFilteredTasks(1, ACTIVITY_TYPE_RECENTS /* ignoreActivityType */, WINDOWING_MODE_PINNED /* ignoreWindowingMode */); if (tasks.isEmpty()) { return null; } // Find the first task in a valid stack, we ignore everything from the Recents and PiP // stacks for (int i = 0; i < tasks.size(); i++) { final ActivityManager.RunningTaskInfo task = tasks.get(i); final WindowConfiguration winConfig = task.configuration.windowConfiguration; if (winConfig.getActivityType() == ACTIVITY_TYPE_RECENTS) { continue; } if (winConfig.getWindowingMode() == WINDOWING_MODE_PINNED) { continue; } return task; } return tasks.get(0); } catch (RemoteException e) { return null; } } /** * Returns whether the recents activity is currently visible. Loading
services/core/java/com/android/server/am/ActivityManagerService.java +15 −7 Original line number Diff line number Diff line Loading @@ -29,11 +29,13 @@ import static android.app.ActivityManager.LOCK_TASK_MODE_NONE; import static android.app.ActivityManager.RESIZE_MODE_PRESERVE_WINDOW; import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.pm.PackageManager.FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS; import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT; import static android.content.pm.PackageManager.FEATURE_LEANBACK_ONLY; Loading Loading @@ -227,6 +229,8 @@ import android.app.PictureInPictureParams; import android.app.ProfilerInfo; import android.app.RemoteAction; import android.app.WaitResult; import android.app.WindowConfiguration.ActivityType; import android.app.WindowConfiguration.WindowingMode; import android.app.admin.DevicePolicyManager; import android.app.assist.AssistContent; import android.app.assist.AssistStructure; Loading Loading @@ -9772,19 +9776,23 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override public List<RunningTaskInfo> getTasks(int maxNum, int flags) { public List<RunningTaskInfo> getTasks(int maxNum) { return getFilteredTasks(maxNum, ACTIVITY_TYPE_UNDEFINED, WINDOWING_MODE_UNDEFINED); } @Override public List<RunningTaskInfo> getFilteredTasks(int maxNum, @ActivityType int ignoreActivityType, @WindowingMode int ignoreWindowingMode) { final int callingUid = Binder.getCallingUid(); ArrayList<RunningTaskInfo> list = new ArrayList<RunningTaskInfo>(); ArrayList<RunningTaskInfo> list = new ArrayList<>(); synchronized(this) { if (DEBUG_ALL) Slog.v( TAG, "getTasks: max=" + maxNum + ", flags=" + flags); if (DEBUG_ALL) Slog.v(TAG, "getTasks: max=" + maxNum); final boolean allowed = isGetTasksAllowed("getTasks", Binder.getCallingPid(), callingUid); // TODO: Improve with MRU list from all ActivityStacks. mStackSupervisor.getTasksLocked(maxNum, list, callingUid, allowed); mStackSupervisor.getRunningTasks(maxNum, list, ignoreActivityType, ignoreWindowingMode, callingUid, allowed); } return list;