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

Commit 4322190a authored by Jerry Chang's avatar Jerry Chang Committed by Android (Google) Code Review
Browse files

Merge "Integrate split pair cold launch transition with shell transition" into tm-qpr-dev

parents 99b1580d 40ff0849
Loading
Loading
Loading
Loading
+32 −2
Original line number Diff line number Diff line
@@ -389,10 +389,39 @@ public final class TaskViewUtils {
     * device is considered in multiWindowMode and things like insets and stuff change
     * and calculations have to be adjusted in the animations for that
     */
    public static void composeRecentsSplitLaunchAnimator(int initialTaskId,
            @Nullable PendingIntent initialTaskPendingIntent, int secondTaskId,
    public static void composeRecentsSplitLaunchAnimator(GroupedTaskView launchingTaskView,
            @NonNull StateManager stateManager, @Nullable DepthController depthController,
            int initialTaskId, @Nullable PendingIntent initialTaskPendingIntent, int secondTaskId,
            @NonNull TransitionInfo transitionInfo, SurfaceControl.Transaction t,
            @NonNull Runnable finishCallback) {
        if (launchingTaskView != null) {
            AnimatorSet animatorSet = new AnimatorSet();
            animatorSet.addListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    finishCallback.run();
                }
            });

            final RemoteAnimationTargetCompat[] appTargets =
                    RemoteAnimationTargetCompat.wrapApps(transitionInfo, t, null /* leashMap */);
            final RemoteAnimationTargetCompat[] wallpaperTargets =
                    RemoteAnimationTargetCompat.wrapNonApps(
                            transitionInfo, true /* wallpapers */, t, null /* leashMap */);
            final RemoteAnimationTargetCompat[] nonAppTargets =
                    RemoteAnimationTargetCompat.wrapNonApps(
                            transitionInfo, false /* wallpapers */, t, null /* leashMap */);
            final RecentsView recentsView = launchingTaskView.getRecentsView();
            composeRecentsLaunchAnimator(animatorSet, launchingTaskView,
                    appTargets, wallpaperTargets, nonAppTargets,
                    true, stateManager,
                    recentsView, depthController);

            t.apply();
            animatorSet.start();
            return;
        }

        // TODO: consider initialTaskPendingIntent
        TransitionInfo.Change splitRoot1 = null;
        TransitionInfo.Change splitRoot2 = null;
@@ -657,6 +686,7 @@ public final class TaskViewUtils {
            public void onAnimationStart(Animator animation) {
                if (shown) {
                    for (SurfaceControl leash : auxiliarySurfaces) {
                        t.setLayer(leash, Integer.MAX_VALUE);
                        t.setAlpha(leash, 0);
                        t.show(leash);
                    }
+3 −2
Original line number Diff line number Diff line
@@ -242,8 +242,9 @@ public class SplitSelectStateController {
        @Override
        public void startAnimation(@NonNull IBinder transition, @NonNull TransitionInfo info,
                @NonNull SurfaceControl.Transaction t, @NonNull Runnable finishCallback) {
            TaskViewUtils.composeRecentsSplitLaunchAnimator(mInitialTaskId,
                    mInitialTaskPendingIntent, mSecondTaskId, info, t, () -> {
            TaskViewUtils.composeRecentsSplitLaunchAnimator(mLaunchingTaskView, mStateManager,
                    mDepthController, mInitialTaskId, mInitialTaskPendingIntent, mSecondTaskId,
                    info, t, () -> {
                    finishCallback.run();
                    if (mSuccessCallback != null) {
                        mSuccessCallback.accept(true);