Fix bug where taskbar is translated during hotseat handoff. am: ecb55ef471

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22531977

Change-Id: If9624d1b602edd615e19ae135e963723537ce574
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
index 58cb558..c9e7df4 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
@@ -642,8 +642,14 @@
         long resetDuration = mControllers.taskbarStashController.isInApp()
                 ? duration
                 : duration / 2;
-        if (mControllers.taskbarTranslationController.shouldResetBackToZero(resetDuration)
-                && (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL)) {
+        boolean shouldReset =
+                mControllers.taskbarTranslationController.shouldResetBackToZero(resetDuration);
+        boolean goingToLauncher = isAnimatingToLauncher();
+        boolean isNormalState = mLauncherState == LauncherState.NORMAL;
+        // Taskbar should always reset when animating to launcher in normal state to ensure there
+        // is no jump during the handoff to the hotseat.
+        if ((goingToLauncher && isNormalState)
+                || (shouldReset && (goingToLauncher || isNormalState))) {
             animatorSet.play(mControllers.taskbarTranslationController
                     .createAnimToResetTranslation(resetDuration));
         }