Merge "Fix case of gesture being stuck when the Launcher is stopped mid-gesture" into tm-qpr-dev
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 4e635a7..24bb393 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -1140,6 +1140,13 @@
boolean isCancel) {
long duration = MAX_SWIPE_DURATION;
float currentShift = mCurrentShift.value;
+ boolean recentsVisible = mRecentsView != null
+ && (mRecentsView.getWindowVisibility() == View.VISIBLE);
+ if (!recentsVisible) {
+ // We've hit a case where Launcher is been stopped mid-gesture, in this case, force
+ // a LAST_TASK end target
+ isCancel = true;
+ }
final GestureEndTarget endTarget = calculateEndTarget(velocity, endVelocity,
isFling, isCancel);
// Set the state, but don't notify until the animation completes
@@ -1219,7 +1226,7 @@
// Let RecentsView handle the scrolling to the task, which we launch in startNewTask()
// or resumeLastTask().
- if (mRecentsView != null) {
+ if (recentsVisible) {
ActiveGestureLog.INSTANCE.trackEvent(ActiveGestureErrorDetector.GestureEvent
.SET_ON_PAGE_TRANSITION_END_CALLBACK);
mRecentsView.setOnPageTransitionEndCallback(