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

Commit e7f30dc1 authored by Alan Viverette's avatar Alan Viverette
Browse files

Split AbsListView.onTouchEvent into multiple methods for readability.

Change-Id: Iaa28b70f9d708857e64c3d857c65aa075ab4208a
parent 579c00ef
Loading
Loading
Loading
Loading
+306 −289
Original line number Diff line number Diff line
@@ -3308,6 +3308,67 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

        switch (action & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN: {
            onTouchDown(ev);
            break;
        }

        case MotionEvent.ACTION_MOVE: {
            onTouchMove(ev);
            break;
        }

        case MotionEvent.ACTION_UP: {
            onTouchUp(ev);
            break;
        }

        case MotionEvent.ACTION_CANCEL: {
            onTouchCancel();
            break;
        }

        case MotionEvent.ACTION_POINTER_UP: {
            onSecondaryPointerUp(ev);
            final int x = mMotionX;
            final int y = mMotionY;
            final int motionPosition = pointToPosition(x, y);
            if (motionPosition >= 0) {
                // Remember where the motion event started
                v = getChildAt(motionPosition - mFirstPosition);
                mMotionViewOriginalTop = v.getTop();
                mMotionPosition = motionPosition;
            }
            mLastY = y;
            break;
        }

        case MotionEvent.ACTION_POINTER_DOWN: {
            // New pointers take over dragging duties
            final int index = ev.getActionIndex();
            final int id = ev.getPointerId(index);
            final int x = (int) ev.getX(index);
            final int y = (int) ev.getY(index);
            mMotionCorrection = 0;
            mActivePointerId = id;
            mMotionX = x;
            mMotionY = y;
            final int motionPosition = pointToPosition(x, y);
            if (motionPosition >= 0) {
                // Remember where the motion event started
                v = getChildAt(motionPosition - mFirstPosition);
                mMotionViewOriginalTop = v.getTop();
                mMotionPosition = motionPosition;
            }
            mLastY = y;
            break;
        }
        }

        return true;
    }

    private void onTouchDown(MotionEvent ev) {
        View v;
        switch (mTouchMode) {
        case TOUCH_MODE_OVERFLING: {
            mFlingRunnable.endFling();
@@ -3370,10 +3431,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                removeCallbacks(mPendingCheckForTap);
            }
        }
            break;
    }

        case MotionEvent.ACTION_MOVE: {
    private void onTouchMove(MotionEvent ev) {
        int pointerIndex = ev.findPointerIndex(mActivePointerId);
        if (pointerIndex == -1) {
            pointerIndex = 0;
@@ -3400,10 +3460,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            scrollIfNeeded(y);
            break;
        }
            break;
    }

        case MotionEvent.ACTION_UP: {
    private void onTouchUp(MotionEvent ev) {
        switch (mTouchMode) {
        case TOUCH_MODE_DOWN:
        case TOUCH_MODE_TAP:
@@ -3470,7 +3529,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                        mTouchMode = TOUCH_MODE_REST;
                        updateSelectorState();
                    }
                        return true;
                    return;
                } else if (!mDataChanged && mAdapter.isEnabled(motionPosition)) {
                    performClick.run();
                }
@@ -3576,10 +3635,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            mScrollStrictSpan.finish();
            mScrollStrictSpan = null;
        }
            break;
    }

        case MotionEvent.ACTION_CANCEL: {
    private void onTouchCancel() {
        switch (mTouchMode) {
        case TOUCH_MODE_OVERSCROLL:
            if (mFlingRunnable == null) {
@@ -3614,47 +3672,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            mEdgeGlowBottom.onRelease();
        }
        mActivePointerId = INVALID_POINTER;
            break;
        }

        case MotionEvent.ACTION_POINTER_UP: {
            onSecondaryPointerUp(ev);
            final int x = mMotionX;
            final int y = mMotionY;
            final int motionPosition = pointToPosition(x, y);
            if (motionPosition >= 0) {
                // Remember where the motion event started
                v = getChildAt(motionPosition - mFirstPosition);
                mMotionViewOriginalTop = v.getTop();
                mMotionPosition = motionPosition;
            }
            mLastY = y;
            break;
        }

        case MotionEvent.ACTION_POINTER_DOWN: {
            // New pointers take over dragging duties
            final int index = ev.getActionIndex();
            final int id = ev.getPointerId(index);
            final int x = (int) ev.getX(index);
            final int y = (int) ev.getY(index);
            mMotionCorrection = 0;
            mActivePointerId = id;
            mMotionX = x;
            mMotionY = y;
            final int motionPosition = pointToPosition(x, y);
            if (motionPosition >= 0) {
                // Remember where the motion event started
                v = getChildAt(motionPosition - mFirstPosition);
                mMotionViewOriginalTop = v.getTop();
                mMotionPosition = motionPosition;
            }
            mLastY = y;
            break;
        }
        }

        return true;
    }

    @Override