diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index dc0ef27ba1..3952d20e0a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -169,10 +169,8 @@ import java.util.function.Supplier; mTaskBarRecentsAnimationListener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(mTaskBarRecentsAnimationListener); - RecentsView recentsView = mLauncher.getOverviewPanel(); - recentsView.setTaskLaunchListener(() -> { - mTaskBarRecentsAnimationListener.endGestureStateOverride(true); - }); + ((RecentsView) mLauncher.getOverviewPanel()).setTaskLaunchListener(() -> + mTaskBarRecentsAnimationListener.endGestureStateOverride(true)); return animatorSet; } @@ -459,6 +457,7 @@ import java.util.function.Supplier; private void endGestureStateOverride(boolean finishedToApp) { mCallbacks.removeListener(this); mTaskBarRecentsAnimationListener = null; + ((RecentsView) mLauncher.getOverviewPanel()).setTaskLaunchListener(null); // Update the resumed state immediately to ensure a seamless handoff boolean launcherResumed = !finishedToApp; diff --git a/quickstep/src/com/android/quickstep/TaskViewUtils.java b/quickstep/src/com/android/quickstep/TaskViewUtils.java index db402aff85..a0305688af 100644 --- a/quickstep/src/com/android/quickstep/TaskViewUtils.java +++ b/quickstep/src/com/android/quickstep/TaskViewUtils.java @@ -468,7 +468,6 @@ public final class TaskViewUtils { animatorSet.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); finishCallback.run(); } }); @@ -530,7 +529,6 @@ public final class TaskViewUtils { for (SurfaceControl leash: closingTargets) { t.hide(leash); } - super.onAnimationEnd(animation); finishCallback.run(); } }); @@ -599,8 +597,13 @@ public final class TaskViewUtils { launcherAnim.setInterpolator(Interpolators.TOUCH_RESPONSE_INTERPOLATOR); launcherAnim.setDuration(RECENTS_LAUNCH_DURATION); - // Make sure recents gets fixed up by resetting task alphas and scales, etc. windowAnimEndListener = new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + recentsView.onTaskLaunchedInLiveTileMode(); + } + + // Make sure recents gets fixed up by resetting task alphas and scales, etc. @Override public void onAnimationEnd(Animator animation) { recentsView.finishRecentsAnimation(false /* toRecents */, () -> { @@ -677,7 +680,6 @@ public final class TaskViewUtils { dockFadeAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { - super.onAnimationStart(animation); if (shown) { for (SurfaceControl leash : auxiliarySurfaces) { t.setAlpha(leash, 0); @@ -689,7 +691,6 @@ public final class TaskViewUtils { @Override public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); if (!shown) { for (SurfaceControl leash : auxiliarySurfaces) { t.hide(leash);