Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb296923 authored by Tony Wickham's avatar Tony Wickham Committed by Automerger Merge Worker
Browse files

Merge "Don't reset GestureState when touching outside of swipe region" into...

Merge "Don't reset GestureState when touching outside of swipe region" into ub-launcher3-rvc-dev am: 698dfc03

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

Change-Id: I1dff771a82a76f5ab8d1f3a579ef6f943c28d6f9
parents 83099362 698dfc03
Loading
Loading
Loading
Loading
+10 −16
Original line number Diff line number Diff line
@@ -471,7 +471,6 @@ public class TouchInteractionService extends Service implements PluginListener<O
                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 @@ public class TouchInteractionService extends Service implements PluginListener<O
                // 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 @@ public class TouchInteractionService extends Service implements PluginListener<O
        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 @@ public class TouchInteractionService extends Service implements PluginListener<O

    private void reset() {
        mConsumer = mUncheckedConsumer = mResetGestureInputConsumer;
        mGestureState = new GestureState();
        mGestureState = DEFAULT_STATE;
    }

    private void preloadOverview(boolean fromInit) {