Cheesebaron.HorizontalPager.HorizontalPager.OnInterceptTouchEvent C# (CSharp) Method

OnInterceptTouchEvent() public method

public OnInterceptTouchEvent ( Android.Views.MotionEvent ev ) : bool
ev Android.Views.MotionEvent
return bool
        public override bool OnInterceptTouchEvent(MotionEvent ev)
        {
            MotionEventActions action = ev.Action;
            bool intercept = false;

            switch (action)
            {
                case MotionEventActions.Move:
                    if (mTouchState == TOUCH_STATE_HORIZONTAL_SCROLLING)
                        intercept = true;
                    else if (mTouchState == TOUCH_STATE_VERTICAL_SCROLLING)
                        intercept = false;
                    else
                    {
                        float x = ev.GetX();
                        int xDiff = (int)Math.Abs(x - mLastMotionX);
                        bool xMoved = xDiff > mTouchSlop;

                        if (xMoved)
                        {
                            mTouchState = TOUCH_STATE_HORIZONTAL_SCROLLING;
                            mLastMotionX = x;
                        }

                        float y = ev.GetY();
                        int yDiff = (int)Math.Abs(y - mLastMotionY);
                        bool yMoved = yDiff > mTouchSlop;

                        if (yMoved)
                            mTouchState = TOUCH_STATE_VERTICAL_SCROLLING;
                    }
                    break;
                case MotionEventActions.Cancel:
                    mTouchState = TOUCH_STATE_REST;
                    break;
                case MotionEventActions.Up:
                    mTouchState = TOUCH_STATE_REST;
                    break;
                case MotionEventActions.Down:
                    mLastMotionX = ev.GetX();
                    mLastMotionY = ev.GetY();
                    break;
                default:
                    break;
            }

            return intercept;
        }