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

Commit da0d6a6b authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Correctly handle intercepted touch events in FastScroller" into mnc-dev

parents 0f2be13d fb99ba89
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -3638,12 +3638,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

        startNestedScroll(SCROLL_AXIS_VERTICAL);

        if (mFastScroll != null) {
            boolean intercepted = mFastScroll.onTouchEvent(ev);
            if (intercepted) {
        if (mFastScroll != null && mFastScroll.onTouchEvent(ev)) {
            return true;
        }
        }

        initVelocityTrackerIfNotExists();
        final MotionEvent vtev = MotionEvent.obtain(ev);
+13 −1
Original line number Diff line number Diff line
@@ -1389,7 +1389,8 @@ class FastScroller {
                    // to intercept events. If it does, we will receive a CANCEL
                    // event.
                    if (!mList.isInScrollingContainer()) {
                        beginDrag();
                        // This will get dispatched to onTouchEvent(). Start
                        // dragging there.
                        return true;
                    }

@@ -1406,6 +1407,8 @@ class FastScroller {
                    final float pos = getPosFromMotionEvent(mInitialTouchY);
                    scrollTo(pos);

                    // This may get dispatched to onTouchEvent(), but it
                    // doesn't really matter since we'll already be in a drag.
                    return onTouchEvent(ev);
                }
                break;
@@ -1440,6 +1443,15 @@ class FastScroller {
        }

        switch (me.getActionMasked()) {
            case MotionEvent.ACTION_DOWN: {
                if (isPointInside(me.getX(), me.getY())) {
                    if (!mList.isInScrollingContainer()) {
                        beginDrag();
                        return true;
                    }
                }
            } break;

            case MotionEvent.ACTION_UP: {
                if (mPendingDrag >= 0) {
                    // Allow a tap to scroll.