Cleanup overview threshold which was only needed for 2-button mode

- Removed hasReachedOverviewThreshold() and mPassedOverviewThreshold
- Changed calculateEndTargetForNonFling() to check velocity.y to
  determine whether to go HOME or LAST_TASK when no other conditions are
  met (e.g. mIsMotionPaused still goes to RECENTS). To allow transient
  taskbar to override this so that user stays in LAST_TASK when invoking
  the taskbar, kept setHasReachedHomeOverviewThreshold() but renamed it
  to setCanSlowSwipeGoHome(),

Test: TaplTestsQuickstep, manually tested on tablet and phone to ensure
the correct end target was chosen when hitting this code path in
calculateEndTargetForNonFling
Flag: teamfood (ENABLE_TRANSIENT_TASKBAR)
Fixes: 259715295

Change-Id: I925be3433d7d2792cdc2a75a18dc575019f2cc95
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 4bbbe60..b65d408 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -292,7 +292,6 @@
 
     private boolean mWasLauncherAlreadyVisible;
 
-    private boolean mPassedOverviewThreshold;
     private boolean mGestureStarted;
     private boolean mLogDirectionUpOrLeft = true;
     private PointF mDownPos;
@@ -319,8 +318,8 @@
     private final int mTaskbarCatchUpThreshold;
     private boolean mTaskbarAlreadyOpen;
     private final boolean mIsTransientTaskbar;
-    // Only used when mIsTransientTaskbar is true.
-    private boolean mHasReachedHomeOverviewThreshold;
+    // May be set to false when mIsTransientTaskbar is true.
+    private boolean mCanSlowSwipeGoHome = true;
 
     public AbsSwipeUpHandler(Context context, RecentsAnimationDeviceState deviceState,
             TaskAnimationManager taskAnimationManager, GestureState gestureState,
@@ -824,14 +823,6 @@
     @UiThread
     @Override
     public void updateFinalShift() {
-        final boolean passed = hasReachedHomeOverviewThreshold();
-        if (passed != mPassedOverviewThreshold) {
-            mPassedOverviewThreshold = passed;
-            if (mDeviceState.isTwoButtonNavMode() && !mGestureState.isHandlingAtomicEvent()) {
-                performHapticFeedback();
-            }
-        }
-
         updateSysUiFlags(mCurrentShift.value);
         applyScrollAndTransform();
 
@@ -916,8 +907,6 @@
         mStateCallback.runOnceAtState(STATE_APP_CONTROLLER_RECEIVED | STATE_GESTURE_STARTED,
                 this::startInterceptingTouchesForGesture);
         mStateCallback.setStateOnUiThread(STATE_APP_CONTROLLER_RECEIVED);
-
-        mPassedOverviewThreshold = false;
     }
 
     @Override
@@ -1149,20 +1138,11 @@
             return willGoToNewTask || isCenteredOnNewTask ? NEW_TASK : LAST_TASK;
         }
 
-        if (!mDeviceState.isFullyGesturalNavMode()) {
-            return (!hasReachedHomeOverviewThreshold() && willGoToNewTask) ? NEW_TASK : RECENTS;
-        }
         return willGoToNewTask ? NEW_TASK : HOME;
     }
 
     private GestureEndTarget calculateEndTargetForNonFling(PointF velocity) {
         final boolean isScrollingToNewTask = isScrollingToNewTask();
-        final boolean reachedHomeOverviewThreshold = hasReachedHomeOverviewThreshold();
-        if (!mDeviceState.isFullyGesturalNavMode()) {
-            return reachedHomeOverviewThreshold && mGestureStarted
-                    ? RECENTS
-                    : (isScrollingToNewTask ? NEW_TASK : LAST_TASK);
-        }
 
         // Fully gestural mode.
         final boolean isFlingX = Math.abs(velocity.x) > mContext.getResources()
@@ -1175,10 +1155,8 @@
             return RECENTS;
         } else if (isScrollingToNewTask) {
             return NEW_TASK;
-        } else if (reachedHomeOverviewThreshold) {
-            return HOME;
         }
-        return LAST_TASK;
+        return velocity.y < 0 && mCanSlowSwipeGoHome ? HOME : LAST_TASK;
     }
 
     private boolean isScrollingToNewTask() {
@@ -1195,21 +1173,15 @@
     }
 
     /**
-     * Sets whether the current swipe has reached the threshold where if user lets go they would
-     * go to either the home state or overview state.
+     * Sets whether a slow swipe can go to the HOME end target when the user lets go. A slow swipe
+     * for this purpose must meet two criteria:
+     *   1) y-velocity is less than quickstep_fling_threshold_speed
+     *   AND
+     *   2) motion pause has not been detected (possibly because
+     *   {@link MotionPauseDetector#setDisallowPause} has been called with disallowPause == true)
      */
-    public void setHasReachedHomeOverviewThreshold(boolean hasReachedHomeOverviewThreshold) {
-        mHasReachedHomeOverviewThreshold = hasReachedHomeOverviewThreshold;
-    }
-
-    /**
-     * Returns true iff swipe has reached the overview threshold.
-     */
-    public boolean hasReachedHomeOverviewThreshold() {
-        if (mIsTransientTaskbar) {
-            return mHasReachedHomeOverviewThreshold;
-        }
-        return mCurrentShift.value > MIN_PROGRESS_FOR_OVERVIEW;
+    public void setCanSlowSwipeGoHome(boolean canSlowSwipeGoHome) {
+        mCanSlowSwipeGoHome = canSlowSwipeGoHome;
     }
 
     @UiThread
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java
index 503644a..4d005b2 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java
@@ -340,8 +340,8 @@
                         boolean minSwipeMet = upDist >= mMotionPauseMinDisplacement;
                         if (mIsTransientTaskbar) {
                             minSwipeMet = upDist >= mTaskbarHomeOverviewThreshold;
-                            mInteractionHandler.setHasReachedHomeOverviewThreshold(minSwipeMet);
                         }
+                        mInteractionHandler.setCanSlowSwipeGoHome(minSwipeMet);
                         mMotionPauseDetector.setDisallowPause(!minSwipeMet
                                 || isLikelyToStartNewTask);
                         mMotionPauseDetector.addPosition(ev);