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

Commit d936f6a5 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Do not change state in the middle of quickstep gesture

Changing states causing quickscrub to get cancelled and recentsView to
get reset to page 0, causing an abrupt jump.

Bug: 80537625
Bug: 80497058
Change-Id: I19cfe4380bbff15734b9d90dc31596904da27483
parent 87168ca1
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -243,9 +243,8 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
            if (wasVisible) {
                DeviceProfile dp = activity.getDeviceProfile();
                long accuracy = 2 * Math.max(dp.widthPx, dp.heightPx);
                activity.getStateManager().goToState(startState, false);
                callback.accept(activity.getStateManager()
                        .createAnimationToNewWorkspace(endState, accuracy));
                        .createAnimationToNewWorkspace(startState, endState, accuracy));
                return;
            }

+18 −0
Original line number Diff line number Diff line
@@ -296,6 +296,24 @@ public class LauncherStateManager {
        }
    }

    /**
     * Creates a {@link AnimatorPlaybackController} that can be used for a controlled
     * state transition. The UI is force-set to fromState before creating the controller.
     * @param fromState the initial state for the transition.
     * @param state the final state for the transition.
     * @param duration intended duration for normal playback. Use higher duration for better
     *                accuracy.
     */
    public AnimatorPlaybackController createAnimationToNewWorkspace(
            LauncherState fromState, LauncherState state, long duration) {
        mConfig.reset();
        for (StateHandler handler : getStateHandlers()) {
            handler.setState(fromState);
        }

        return createAnimationToNewWorkspace(state, duration);
    }

    /**
     * Creates a {@link AnimatorPlaybackController} that can be used for a controlled
     * state transition.