Loading quickstep/src/com/android/quickstep/TaskViewUtils.java +32 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
quickstep/src/com/android/quickstep/TaskViewUtils.java +32 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading
quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); Loading