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

Commit dcc26fc6 authored by Mario Bertschler's avatar Mario Bertschler
Browse files

Fixes a bug where the user ends in freescroll state even for regular workspace mode.

The bug happened while reordering pages in overview mode and clicking the back button.
The fix is to check the precodition in enableFreeScroll if we are in a valid state for enabling freescroll (currently only overview mode).

Bug: 33347786
Change-Id: Icc3005fd431569e2b9e3f52d2249de8ba8d13eab
parent c9c57631
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -1372,8 +1372,12 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
        dampedOverScroll(amount);
    }

    public void enableFreeScroll() {
    /**
     * return true if freescroll has been enabled, false otherwise
     */
    public boolean enableFreeScroll() {
        setEnableFreeScroll(true);
        return true;
    }

    public void disableFreeScroll() {
@@ -2074,20 +2078,14 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
        if (!mReorderingStarted) return;
        mReorderingStarted = false;

        // If we haven't flung-to-delete the current child, then we just animate the drag view
        // back into position
        final Runnable onCompleteRunnable = new Runnable() {
            @Override
        mPostReorderingPreZoomInRunnable = new Runnable() {
            public void run() {
                // If we haven't flung-to-delete the current child,
                // then we just animate the drag view back into position
                onEndReordering();
            }
        };

        mPostReorderingPreZoomInRunnable = new Runnable() {
            public void run() {
                onCompleteRunnable.run();
                enableFreeScroll();
            };
            }
        };

        mPostReorderingPreZoomInRemainingAnimationCount =
+10 −0
Original line number Diff line number Diff line
@@ -4115,6 +4115,16 @@ public class Workspace extends PagedView
        }
    }

    @Override
    public boolean enableFreeScroll() {
        if (getState() == State.OVERVIEW) {
            return super.enableFreeScroll();
        } else {
            Log.w(TAG, "enableFreeScroll called but not in overview: state=" + getState());
            return false;
        }
    }

    /**
     * Used as a workaround to ensure that the AppWidgetService receives the
     * PACKAGE_ADDED broadcast before updating widgets.