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

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

Fixing state not set properly when configuration changes

and remote animation callback comes after threshold is crossed

The transition length is updated when removeAnimations is received.
If the gesture delta is crossed before that, we were ending up in
long-swipe mode as due to an incomplete check.

Bug: 117549010
Change-Id: If5471c538ac51b84f176a1fad42112e84046da63
parent 2ccdd08a
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -538,7 +538,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {
    public void updateDisplacement(float displacement) {
        // We are moving in the negative x/y direction
        displacement = -displacement;
        if (displacement > mTransitionDragLength) {
        if (displacement > mTransitionDragLength && mTransitionDragLength > 0) {
            mCurrentShift.updateValue(1);

            if (!mBgLongSwipeMode) {
@@ -813,8 +813,12 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {
        long startMillis = SystemClock.uptimeMillis();
        executeOnUiThread(() -> {
            // Animate the launcher components at the same time as the window, always on UI thread.
            if (mLauncherTransitionController != null && !mWasLauncherAlreadyVisible
                    && start != end && duration > 0) {
            if (mLauncherTransitionController == null) {
                return;
            }
            if (start == end || duration <= 0) {
                mLauncherTransitionController.getAnimationPlayer().end();
            } else {
                // Adjust start progress and duration in case we are on a different thread.
                long elapsedMillis = SystemClock.uptimeMillis() - startMillis;
                elapsedMillis = Utilities.boundToRange(elapsedMillis, 0, duration);