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

Commit 89c8ce4e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Have createRootTask return TaskAppearInfo"

parents 7c1ee608 093aba3d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2375,7 +2375,7 @@ package android.window {

  public class TaskOrganizer extends android.window.WindowOrganizer {
    ctor public TaskOrganizer();
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public android.app.ActivityManager.RunningTaskInfo createRootTask(int, int);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public android.window.TaskAppearedInfo createRootTask(int, int);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public boolean deleteRootTask(@NonNull android.window.WindowContainerToken);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public java.util.List<android.app.ActivityManager.RunningTaskInfo> getChildTasks(@NonNull android.window.WindowContainerToken, @NonNull int[]);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public android.window.WindowContainerToken getImeTarget(int);
+6 −2
Original line number Diff line number Diff line
@@ -39,8 +39,12 @@ interface ITaskOrganizerController {
     */
    void unregisterTaskOrganizer(ITaskOrganizer organizer);

    /** Creates a persistent root task in WM for a particular windowing-mode. */
    ActivityManager.RunningTaskInfo createRootTask(int displayId, int windowingMode);
    /**
     * Creates a persistent root task in WM for a particular windowing-mode.
     * {@link TaskOrganizer#onTaskAppeared} won't be called since we are returning
     * {@link TaskAppearedInfo} here.
     */
    TaskAppearedInfo createRootTask(int displayId, int windowingMode);

    /** Deletes a persistent root task in WM */
    boolean deleteRootTask(in WindowContainerToken task);
+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ public class TaskOrganizer extends WindowOrganizer {
    /** Creates a persistent root task in WM for a particular windowing-mode. */
    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
    @Nullable
    public ActivityManager.RunningTaskInfo createRootTask(int displayId, int windowingMode) {
    public TaskAppearedInfo createRootTask(int displayId, int windowingMode) {
        try {
            return mTaskOrganizerController.createRootTask(displayId, windowingMode);
        } catch (RemoteException e) {
+6 −0
Original line number Diff line number Diff line
@@ -31,6 +31,12 @@
      "group": "WM_SHELL_TASK_ORG",
      "at": "com\/android\/wm\/shell\/ShellTaskOrganizer.java"
    },
    "-1312360667": {
      "message": "createRootTask() displayId=%d winMode=%d listener=%s",
      "level": "VERBOSE",
      "group": "WM_SHELL_TASK_ORG",
      "at": "com\/android\/wm\/shell\/ShellTaskOrganizer.java"
    },
    "-880817403": {
      "message": "Task vanished taskId=%d",
      "level": "VERBOSE",
+23 −5
Original line number Diff line number Diff line
@@ -128,11 +128,24 @@ public class ShellTaskOrganizer extends TaskOrganizer {
            final TaskAppearedInfo info = taskInfos.get(i);
            ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG, "Existing task: id=%d component=%s",
                    info.getTaskInfo().taskId, info.getTaskInfo().baseIntent);
            onTaskAppeared(info.getTaskInfo(), info.getLeash());
            onTaskAppeared(info);
        }
        return taskInfos;
    }

    public TaskAppearedInfo createRootTask(
            int displayId, int windowingMode, TaskListener listener) {
        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG,
                "createRootTask() displayId=%d winMode=%d listener=%s",
                displayId, windowingMode, listener.toString());
        final TaskAppearedInfo info = super.createRootTask(displayId, windowingMode);

        // Add the listener and send the task appeared signal
        mTaskListeners.put(info.getTaskInfo().taskId, listener);
        onTaskAppeared(info);
        return info;
    }

    /**
     * Adds a listener for a specific task id.
     */
@@ -216,12 +229,17 @@ public class ShellTaskOrganizer extends TaskOrganizer {

    @Override
    public void onTaskAppeared(RunningTaskInfo taskInfo, SurfaceControl leash) {
        ProtoLog.v(WM_SHELL_TASK_ORG, "Task appeared taskId=%d", taskInfo.taskId);
        mTasks.put(taskInfo.taskId, new TaskAppearedInfo(taskInfo, leash));
        onTaskAppeared(new TaskAppearedInfo(taskInfo, leash));
    }

    private void onTaskAppeared(TaskAppearedInfo info) {
        final int taskId = info.getTaskInfo().taskId;
        ProtoLog.v(WM_SHELL_TASK_ORG, "Task appeared taskId=%d", taskId);
        mTasks.put(taskId, info);
        final TaskListener listener =
                getTaskListener(taskInfo, true /*removeLaunchCookieIfNeeded*/);
                getTaskListener(info.getTaskInfo(), true /*removeLaunchCookieIfNeeded*/);
        if (listener != null) {
            listener.onTaskAppeared(taskInfo, leash);
            listener.onTaskAppeared(info.getTaskInfo(), info.getLeash());
        }
    }

Loading