Merge "Commit to OtherActivityInputConsumer when swiping up in app" into udc-dev
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/StatusBarInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/StatusBarInputConsumer.java
index f3d2a60..898aa86 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/StatusBarInputConsumer.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/StatusBarInputConsumer.java
@@ -33,6 +33,7 @@
     private final SystemUiProxy mSystemUiProxy;
     private final float mTouchSlop;
     private final PointF mDown = new PointF();
+    private boolean mHasPassedTouchSlop;
 
     public StatusBarInputConsumer(Context context, InputConsumer delegate,
             InputMonitorCompat inputMonitor) {
@@ -53,13 +54,21 @@
             mDelegate.onMotionEvent(ev);
 
             switch (ev.getActionMasked()) {
-                case ACTION_DOWN -> mDown.set(ev.getX(), ev.getY());
+                case ACTION_DOWN -> {
+                    mDown.set(ev.getX(), ev.getY());
+                    mHasPassedTouchSlop = false;
+                }
                 case ACTION_MOVE -> {
-                    float displacementY = ev.getY() - mDown.y;
-                    if (displacementY > mTouchSlop) {
-                        setActive(ev);
-                        ev.setAction(ACTION_DOWN);
-                        dispatchTouchEvent(ev);
+                    if (!mHasPassedTouchSlop) {
+                        float displacementY = ev.getY() - mDown.y;
+                        if (Math.abs(displacementY) > mTouchSlop) {
+                            mHasPassedTouchSlop = true;
+                            if (displacementY > 0) {
+                                setActive(ev);
+                                ev.setAction(ACTION_DOWN);
+                                dispatchTouchEvent(ev);
+                            }
+                        }
                     }
                 }
             }