Merge "Pass isLikelyToStartNewTask to onGestureStarted()" into rvc-dev am: ccf588d36b am: 6be2c6cb83

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/11994586

Change-Id: I0f76e1d3261b8bace3f9ccdf4862b62f6918f3d7
This commit is contained in:
TreeHugger Robot
2020-06-25 17:12:16 +00:00
committed by Automerger Merge Worker
3 changed files with 19 additions and 15 deletions
@@ -327,7 +327,7 @@ public abstract class BaseSwipeUpHandler<T extends StatefulActivity<?>, Q extend
public abstract void onMotionPauseChanged(boolean isPaused); public abstract void onMotionPauseChanged(boolean isPaused);
@UiThread @UiThread
public void onGestureStarted() { } public void onGestureStarted(boolean isLikelyToStartNewTask) { }
@UiThread @UiThread
public abstract void onGestureCancelled(); public abstract void onGestureCancelled();
@@ -492,9 +492,13 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
@Override @Override
public void setIsLikelyToStartNewTask(boolean isLikelyToStartNewTask) { public void setIsLikelyToStartNewTask(boolean isLikelyToStartNewTask) {
setIsLikelyToStartNewTask(isLikelyToStartNewTask, true /* animate */);
}
private void setIsLikelyToStartNewTask(boolean isLikelyToStartNewTask, boolean animate) {
if (mIsLikelyToStartNewTask != isLikelyToStartNewTask) { if (mIsLikelyToStartNewTask != isLikelyToStartNewTask) {
mIsLikelyToStartNewTask = isLikelyToStartNewTask; mIsLikelyToStartNewTask = isLikelyToStartNewTask;
maybeUpdateRecentsAttachedState(); maybeUpdateRecentsAttachedState(animate);
} }
} }
@@ -628,8 +632,9 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
} }
@Override @Override
public void onGestureStarted() { public void onGestureStarted(boolean isLikelyToStartNewTask) {
notifyGestureStartedAsync(); notifyGestureStartedAsync();
setIsLikelyToStartNewTask(isLikelyToStartNewTask, false /* animate */);
mStateCallback.setStateOnUiThread(STATE_GESTURE_STARTED); mStateCallback.setStateOnUiThread(STATE_GESTURE_STARTED);
mGestureStarted = true; mGestureStarted = true;
} }
@@ -277,6 +277,13 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
if (!mPassedSlopOnThisGesture && passedSlop) { if (!mPassedSlopOnThisGesture && passedSlop) {
mPassedSlopOnThisGesture = true; mPassedSlopOnThisGesture = true;
} }
// Until passing slop, we don't know what direction we're going, so assume
// we're quick switching to avoid translating recents away when continuing
// the gesture (in which case mPassedPilferInputSlop starts as true).
boolean haveNotPassedSlopOnContinuedGesture =
!mPassedSlopOnThisGesture && mPassedPilferInputSlop;
boolean isLikelyToStartNewTask = haveNotPassedSlopOnContinuedGesture
|| horizontalDist > upDist;
if (!mPassedPilferInputSlop) { if (!mPassedPilferInputSlop) {
if (passedSlop) { if (passedSlop) {
@@ -299,7 +306,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
mStartDisplacement = Math.min(displacement, -mTouchSlop); mStartDisplacement = Math.min(displacement, -mTouchSlop);
} }
notifyGestureStarted(); notifyGestureStarted(isLikelyToStartNewTask);
} }
} }
@@ -310,13 +317,6 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
} }
if (mDeviceState.isFullyGesturalNavMode()) { if (mDeviceState.isFullyGesturalNavMode()) {
// Until passing slop, we don't know what direction we're going, so assume
// we're quick switching to avoid translating recents away when continuing
// the gesture.
boolean haveNotPassedSlopOnContinuedGesture =
!mPassedSlopOnThisGesture && mPassedPilferInputSlop;
boolean isLikelyToStartNewTask = haveNotPassedSlopOnContinuedGesture
|| horizontalDist > upDist;
mMotionPauseDetector.setDisallowPause(upDist < mMotionPauseMinDisplacement mMotionPauseDetector.setDisallowPause(upDist < mMotionPauseMinDisplacement
|| isLikelyToStartNewTask); || isLikelyToStartNewTask);
mMotionPauseDetector.addPosition(ev); mMotionPauseDetector.addPosition(ev);
@@ -340,7 +340,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
} }
} }
private void notifyGestureStarted() { private void notifyGestureStarted(boolean isLikelyToStartNewTask) {
ActiveGestureLog.INSTANCE.addLog("startQuickstep"); ActiveGestureLog.INSTANCE.addLog("startQuickstep");
if (mInteractionHandler == null) { if (mInteractionHandler == null) {
return; return;
@@ -353,7 +353,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
CLOSE_SYSTEM_WINDOWS_REASON_RECENTS); CLOSE_SYSTEM_WINDOWS_REASON_RECENTS);
// Notify the handler that the gesture has actually started // Notify the handler that the gesture has actually started
mInteractionHandler.onGestureStarted(); mInteractionHandler.onGestureStarted(isLikelyToStartNewTask);
} }
private void startTouchTrackingForWindowAnimation(long touchTimeMs) { private void startTouchTrackingForWindowAnimation(long touchTimeMs) {
@@ -370,8 +370,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
mActiveCallbacks = mTaskAnimationManager.continueRecentsAnimation(mGestureState); mActiveCallbacks = mTaskAnimationManager.continueRecentsAnimation(mGestureState);
mActiveCallbacks.addListener(mInteractionHandler); mActiveCallbacks.addListener(mInteractionHandler);
mTaskAnimationManager.notifyRecentsAnimationState(mInteractionHandler); mTaskAnimationManager.notifyRecentsAnimationState(mInteractionHandler);
mInteractionHandler.setIsLikelyToStartNewTask(true); notifyGestureStarted(true /*isLikelyToStartNewTask*/);
notifyGestureStarted();
} else { } else {
intent.putExtra(INTENT_EXTRA_LOG_TRACE_ID, mGestureState.getGestureId()); intent.putExtra(INTENT_EXTRA_LOG_TRACE_ID, mGestureState.getGestureId());
mActiveCallbacks = mTaskAnimationManager.startRecentsAnimation(mGestureState, intent, mActiveCallbacks = mTaskAnimationManager.startRecentsAnimation(mGestureState, intent,