Merge "Don't reset GestureState when touching outside of swipe region" into ub-launcher3-rvc-dev am: 698dfc03cb
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/11944579
Change-Id: I1dff771a82a76f5ab8d1f3a579ef6f943c28d6f9
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java
index abc2a9c..bfdddbd 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java
@@ -471,7 +471,6 @@
Log.d(TestProtocol.NO_SWIPE_TO_HOME, "TouchInteractionService.onInputEvent:DOWN");
}
mDeviceState.setOrientationTransformIfNeeded(event);
- GestureState newGestureState;
if (mDeviceState.isInSwipeUpTouchRegion(event)) {
if (TestProtocol.sDebugTracing) {
@@ -481,35 +480,30 @@
// Clone the previous gesture state since onConsumerAboutToBeSwitched might trigger
// onConsumerInactive and wipe the previous gesture state
GestureState prevGestureState = new GestureState(mGestureState);
- newGestureState = createGestureState();
+ mGestureState = createGestureState(mGestureState);
mConsumer.onConsumerAboutToBeSwitched();
- mConsumer = newConsumer(prevGestureState, newGestureState, event);
+ mConsumer = newConsumer(prevGestureState, mGestureState, event);
ActiveGestureLog.INSTANCE.addLog("setInputConsumer: " + mConsumer.getName());
mUncheckedConsumer = mConsumer;
} else if (mDeviceState.isUserUnlocked() && mDeviceState.isFullyGesturalNavMode()) {
- newGestureState = createGestureState();
- ActivityManager.RunningTaskInfo runningTask = newGestureState.getRunningTask();
+ mGestureState = createGestureState(mGestureState);
+ ActivityManager.RunningTaskInfo runningTask = mGestureState.getRunningTask();
if (mDeviceState.canTriggerAssistantAction(event, runningTask)) {
// Do not change mConsumer as if there is an ongoing QuickSwitch gesture, we
// should not interrupt it. QuickSwitch assumes that interruption can only
// happen if the next gesture is also quick switch.
mUncheckedConsumer = new AssistantInputConsumer(
this,
- newGestureState,
+ mGestureState,
InputConsumer.NO_OP, mInputMonitorCompat,
mOverviewComponentObserver.assistantGestureIsConstrained());
} else {
- newGestureState = DEFAULT_STATE;
mUncheckedConsumer = InputConsumer.NO_OP;
}
} else {
- newGestureState = DEFAULT_STATE;
mUncheckedConsumer = InputConsumer.NO_OP;
}
-
- // Save the current gesture state
- mGestureState = newGestureState;
} else {
// Other events
if (mUncheckedConsumer != InputConsumer.NO_OP) {
@@ -543,14 +537,14 @@
TraceHelper.INSTANCE.endFlagsOverride(traceToken);
}
- private GestureState createGestureState() {
+ private GestureState createGestureState(GestureState previousGestureState) {
GestureState gestureState = new GestureState(mOverviewComponentObserver,
ActiveGestureLog.INSTANCE.generateAndSetLogId());
if (mTaskAnimationManager.isRecentsAnimationRunning()) {
- gestureState.updateRunningTask(mGestureState.getRunningTask());
- gestureState.updateLastStartedTaskId(mGestureState.getLastStartedTaskId());
+ gestureState.updateRunningTask(previousGestureState.getRunningTask());
+ gestureState.updateLastStartedTaskId(previousGestureState.getLastStartedTaskId());
gestureState.updatePreviouslyAppearedTaskIds(
- mGestureState.getPreviouslyAppearedTaskIds());
+ previousGestureState.getPreviouslyAppearedTaskIds());
} else {
gestureState.updateRunningTask(TraceHelper.whitelistIpcs("getRunningTask.0",
() -> mAM.getRunningTask(false /* filterOnlyVisibleRecents */)));
@@ -753,7 +747,7 @@
private void reset() {
mConsumer = mUncheckedConsumer = mResetGestureInputConsumer;
- mGestureState = new GestureState();
+ mGestureState = DEFAULT_STATE;
}
private void preloadOverview(boolean fromInit) {