Re-enable deferring recents animation on back button.

Bug: 73242451
Test: Swipe up over back button, ensure that we don't start the animation
      until the threshold is crossed

Change-Id: If84c39370428f8ea5bf9d5f7110d17227f00ccc0
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index 1e48a53..19e1cca 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -22,6 +22,7 @@
 import static android.view.MotionEvent.ACTION_UP;
 import static android.view.MotionEvent.INVALID_POINTER_ID;
 import static com.android.quickstep.RemoteRunnable.executeSafely;
+import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_BACK;
 import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_NONE;
 
 import android.app.ActivityManager.RunningTaskInfo;
@@ -131,7 +132,8 @@
 
     public OtherActivityTouchConsumer(Context base, RunningTaskInfo runningTaskInfo,
             RecentsModel recentsModel, Intent homeIntent, ISystemUiProxy systemUiProxy,
-            MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer) {
+            MainThreadExecutor mainThreadExecutor, Choreographer backgroundThreadChoreographer,
+            @HitTarget int downHitTarget) {
         super(base);
         mRunningTask = runningTaskInfo;
         mRecentsModel = recentsModel;
@@ -140,10 +142,6 @@
         mISystemUiProxy = systemUiProxy;
         mMainThreadExecutor = mainThreadExecutor;
         mBackgroundThreadChoreographer = backgroundThreadChoreographer;
-    }
-
-    @Override
-    public void setDownHitTarget(@HitTarget int downHitTarget) {
         mDownHitTarget = downHitTarget;
     }
 
@@ -163,7 +161,7 @@
 
                 // Start the window animation on down to give more time for launcher to draw if the
                 // user didn't start the gesture over the back button
-                if (!isUsingScreenShot()) {
+                if (!isUsingScreenShot() && mDownHitTarget != HIT_TARGET_BACK) {
                     startTouchTrackingForWindowAnimation(ev.getEventTime());
                 }
 
@@ -205,6 +203,10 @@
 
                         if (isUsingScreenShot()) {
                             startTouchTrackingForScreenshotAnimation();
+                        } else if (mDownHitTarget == HIT_TARGET_BACK) {
+                            // If we deferred starting the window animation on touch down, then
+                            // start tracking now
+                            startTouchTrackingForWindowAnimation(ev.getEventTime());
                         }
 
                         notifyGestureStarted();
diff --git a/quickstep/src/com/android/quickstep/TouchConsumer.java b/quickstep/src/com/android/quickstep/TouchConsumer.java
index aaea379..f35f6a6 100644
--- a/quickstep/src/com/android/quickstep/TouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/TouchConsumer.java
@@ -49,8 +49,6 @@
 
     default void reset() { }
 
-    default void setDownHitTarget(@HitTarget int downHitTarget) { }
-
     default void updateTouchTracking(@InteractionType int interactionType) { }
 
     default void onQuickScrubEnd() { }
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 46ef528..278ee9c 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -188,7 +188,7 @@
             mEventQueue = new MotionEventQueue(mMainThreadChoreographer,
                     new OtherActivityTouchConsumer(this, mRunningTask, mRecentsModel,
                     mHomeIntent, mISystemUiProxy, mMainThreadExecutor,
-                    mBackgroundThreadChoreographer));
+                    mBackgroundThreadChoreographer, downHitTarget));
         }
     }