Add small utility methods in Shell
- ShellTaskOrganizer#getRunningTasks() to get tasks on all the
displays.
- TaskViewTransitions.isTaskViewTask() to detect if the given
task is running in a task view.
Flag: EXEMPT bugfix
Bug: 355532757
Test: m
Change-Id: I9b6cc3d4a08c0e42c8db593eda52e6459522af0e
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
index f014e55..44073e7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
@@ -690,6 +690,15 @@
return result;
}
+ /** Return list of {@link RunningTaskInfo}s on all the displays. */
+ public ArrayList<RunningTaskInfo> getRunningTasks() {
+ ArrayList<RunningTaskInfo> result = new ArrayList<>();
+ for (int i = 0; i < mTasks.size(); i++) {
+ result.add(mTasks.valueAt(i).getTaskInfo());
+ }
+ return result;
+ }
+
/** Gets running task by taskId. Returns {@code null} if no such task observed. */
@Nullable
public RunningTaskInfo getRunningTaskInfo(int taskId) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java
index e6d1b45..15fe7ab 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java
@@ -217,6 +217,11 @@
return null;
}
+ /** Returns true if the given {@code taskInfo} belongs to a task view. */
+ public boolean isTaskViewTask(ActivityManager.RunningTaskInfo taskInfo) {
+ return findTaskView(taskInfo) != null;
+ }
+
void startTaskView(@NonNull WindowContainerTransaction wct,
@NonNull TaskViewTaskController taskView, @NonNull IBinder launchCookie) {
updateVisibilityState(taskView, true /* visible */);