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

Commit 1817e987 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Include all not occluded leaf tasks while wrapping animation...

Merge "Merge "Include all not occluded leaf tasks while wrapping animation target" into tm-dev am: efb263d1 am: e8f51cb9"
parents a020f0bf 552c88d7
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1951,12 +1951,6 @@
      "group": "WM_DEBUG_ORIENTATION",
      "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java"
    },
    "-172900257": {
      "message": "addTaskToTargets, target: %s",
      "level": "DEBUG",
      "group": "WM_DEBUG_RECENTS_ANIMATIONS",
      "at": "com\/android\/server\/wm\/RecentsAnimationController.java"
    },
    "-172326720": {
      "message": "Saving icicle of %s: %s",
      "level": "INFO",
@@ -3319,6 +3313,12 @@
      "group": "WM_DEBUG_WINDOW_ORGANIZER",
      "at": "com\/android\/server\/wm\/DisplayAreaOrganizerController.java"
    },
    "1151072840": {
      "message": "collectTaskRemoteAnimations, target: %s",
      "level": "DEBUG",
      "group": "WM_DEBUG_RECENTS_ANIMATIONS",
      "at": "com\/android\/server\/wm\/RecentsAnimationController.java"
    },
    "1164325516": {
      "message": "onExitAnimationDone in %s: exiting=%b remove=%b selfAnimating=%b anim=%s",
      "level": "VERBOSE",
+21 −16
Original line number Diff line number Diff line
@@ -707,13 +707,7 @@ public class RecentsAnimationController implements DeathRecipient {
            if (isAnimatingTask(task) || skipAnimation(task)) {
                return;
            }
            final RemoteAnimationTarget target = createTaskRemoteAnimation(task, MODE_OPENING,
                    finishedCallback);
            if (target == null) {
                return;
            }
            ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "addTaskToTargets, target: %s", target);
            mPendingTaskAppears.add(target);
            collectTaskRemoteAnimations(task, MODE_OPENING, finishedCallback);
        }
    }

@@ -729,19 +723,30 @@ public class RecentsAnimationController implements DeathRecipient {
        }
    }

    private RemoteAnimationTarget createTaskRemoteAnimation(Task task, int mode,
    private void collectTaskRemoteAnimations(Task task, int mode,
            OnAnimationFinishedCallback finishedCallback) {
        final SparseBooleanArray recentTaskIds =
                mService.mAtmService.getRecentTasks().getRecentTaskIds();

        // The target must be built off the root task (the leaf task surface would be cropped
        // within the root surface). However, recents only tracks leaf task ids, so we'll replace
        // the task-id with the leaf id.
        final Task leafTask = task.getTopLeafTask();
        int taskId = leafTask.mTaskId;
        TaskAnimationAdapter adapter = addAnimation(task,
        // within the root surface). However, recents only tracks leaf task ids, so we'll traverse
        // and create animation target for all visible leaf tasks.
        task.forAllLeafTasks(leafTask -> {
            if (!leafTask.shouldBeVisible(null /* starting */)) {
                return;
            }
            final int taskId = leafTask.mTaskId;
            TaskAnimationAdapter adapter = addAnimation(leafTask,
                    !recentTaskIds.get(taskId), true /* hidden */, finishedCallback);
            mPendingNewTaskTargets.add(taskId);
        return adapter.createRemoteAnimationTarget(taskId, mode);
            final RemoteAnimationTarget target =
                    adapter.createRemoteAnimationTarget(taskId, mode);
            if (target != null) {
                mPendingTaskAppears.add(target);
                ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS,
                        "collectTaskRemoteAnimations, target: %s", target);
            }
        }, true);
    }

    void logRecentsAnimationStartTime(int durationMs) {