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

Commit 552c88d7 authored by Jerry Chang's avatar Jerry Chang Committed by Automerger Merge Worker
Browse files

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

Merge "Include all not occluded leaf tasks while wrapping animation target" into tm-dev am: efb263d1 am: e8f51cb9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17499144



Change-Id: Ie23ee41360e18b4da4fe3db3d1f57a3edd13690b
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9686a333 e8f51cb9
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) {