Use actual quickstep callback to track gesture start

- Better than using the threshold ourselves, we should just use the callback
  from the system.

Bug: 79970627
Change-Id: Ida15cfdaa2463f9fa15e222c55e483eb145c2716
diff --git a/quickstep/src/com/android/quickstep/MotionEventQueue.java b/quickstep/src/com/android/quickstep/MotionEventQueue.java
index 538e23c..15f5aa5 100644
--- a/quickstep/src/com/android/quickstep/MotionEventQueue.java
+++ b/quickstep/src/com/android/quickstep/MotionEventQueue.java
@@ -163,7 +163,7 @@
                             mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB);
                             break;
                         case ACTION_QUICK_STEP:
-                            mConsumer.onQuickStep(event.getX(), event.getY(), event.getEventTime());
+                            mConsumer.onQuickStep(event);
                             break;
                         default:
                             Log.e(TAG, "Invalid virtual event: " + event.getAction());
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index d1003a5..23738fb 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -84,8 +84,6 @@
     private boolean mPassedInitialSlop;
     // Used for non-deferred gestures to determine when to start dragging
     private int mQuickStepDragSlop;
-    // Used for deferred gestures to determine both start of animation and dragging
-    private int mQuickStepTouchSlop;
     private float mStartDisplacement;
     private WindowTransformSwipeHandler mInteractionHandler;
     private int mDisplayRotation;
@@ -131,7 +129,6 @@
                 mLastPos.set(mDownPos);
                 mPassedInitialSlop = false;
                 mQuickStepDragSlop = NavigationBarCompat.getQuickStepDragSlopPx();
-                mQuickStepTouchSlop = NavigationBarCompat.getQuickStepTouchSlopPx();
 
                 // 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
@@ -165,15 +162,7 @@
                 mLastPos.set(ev.getX(pointerIndex), ev.getY(pointerIndex));
                 float displacement = getDisplacement(ev);
                 if (!mPassedInitialSlop) {
-                    if (mIsDeferredDownTarget) {
-                        // Deferred gesture, start the animation and gesture tracking once we pass
-                        // the touch slop
-                        if (Math.abs(displacement) > mQuickStepTouchSlop) {
-                            startTouchTrackingForWindowAnimation(ev.getEventTime());
-                            mPassedInitialSlop = true;
-                            mStartDisplacement = displacement;
-                        }
-                    } else {
+                    if (!mIsDeferredDownTarget) {
                         // Normal gesture, ensure we pass the drag slop before we start tracking
                         // the gesture
                         if (Math.abs(displacement) > mQuickStepDragSlop) {
@@ -364,7 +353,14 @@
     }
 
     @Override
-    public void onQuickStep(float eventX, float eventY, long eventTime) {
+    public void onQuickStep(MotionEvent ev) {
+        if (mIsDeferredDownTarget) {
+            // Deferred gesture, start the animation and gesture tracking once we pass the actual
+            // touch slop
+            startTouchTrackingForWindowAnimation(ev.getEventTime());
+            mPassedInitialSlop = true;
+            mStartDisplacement = getDisplacement(ev);
+        }
         notifyGestureStarted();
     }
 
diff --git a/quickstep/src/com/android/quickstep/TouchConsumer.java b/quickstep/src/com/android/quickstep/TouchConsumer.java
index 1290ec3..aa844d8 100644
--- a/quickstep/src/com/android/quickstep/TouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/TouchConsumer.java
@@ -46,7 +46,7 @@
 
     default void onQuickScrubProgress(float progress) { }
 
-    default void onQuickStep(float eventX, float eventY, long eventTime) { }
+    default void onQuickStep(MotionEvent ev) { }
 
     /**
      * Called on the binder thread to allow the consumer to process the motion event before it is
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index bd05b6d..458f9f5 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -334,7 +334,7 @@
         }
 
         @Override
-        public void onQuickStep(float eventX, float eventY, long eventTime) {
+        public void onQuickStep(MotionEvent ev) {
             if (mInvalidated) {
                 return;
             }