0
		{ 
			if(mOnTouchListener!=null && !mJustInterceptedAndIgnored || mOnTouchListener!=null && mSendingDummyMotionEvent) //send on touch event to onTouchListener set by an application implementing a SwipeView and setting their own onTouchListener
			{ 
				if(mOnTouchListener.onTouch(v, event))
				{ 
					if(event.getAction() == MotionEvent.ACTION_UP) //this comes back if a very quick movement event has happened over a view with an onClick
					{ 
						//need to call the actionUp directly so the view is not left between pages. 
						actionUp(event);
					} 
					return true; 
				} 
			} 
			 
			if(mSendingDummyMotionEvent)//if sending the fake action down event (to do with vertical scrolling within this horizontalscrollview) then just ignore it
			{ 
				mSendingDummyMotionEvent = false;
				return false; 
			} 
 
			switch(event.getAction())
			{ 
				case MotionEvent.ACTION_DOWN :
					return actionDown(event);
					 
				case MotionEvent.ACTION_MOVE :
					return actionMove(event);
					 
				case MotionEvent.ACTION_UP :
					return actionUp(event);
			} 
			return false; 
		} 
		 
		private boolean actionDown(MotionEvent event)
		{ 
			mMotionStartX = (int) event.getX();
			mMotionStartY = (int) event.getY();
			mFirstMotionEvent = false;
			return false; 
		} 
		 
		private boolean actionMove(MotionEvent event)
		{ 
			int newDistance = mMotionStartX - (int) event.getX();
			int newDirection;
			 
			if(newDistance<0) //backwards
			{ 
				newDirection =  (mDistanceX+4 <= newDistance) ? 1 : -1;  //the distance +4 is to allow for jitter
			} 
			else //forwards 
			{ 
				newDirection =  (mDistanceX-4 <= newDistance) ? 1 : -1;  //the distance -4 is to allow for jitter
			} 
			 
			 
			if(newDirection != mPreviousDirection && !mFirstMotionEvent)//changed direction, so reset start point
			{ 
				mMotionStartX = (int) event.getX();
				mDistanceX = mMotionStartX - (int) event.getX();
			} 
			else 
			{ 
				mDistanceX = newDistance;
			} 
 
			mPreviousDirection = newDirection; //backwards -1, forwards is 1,
			 
			if(mJustInterceptedAndIgnored)//if the intercept picked it up first, we need to give the horizontalscrollview ontouch an action down to enable it to scroll and follow your finger
			{ 
				mSendingDummyMotionEvent = true;
				dispatchTouchEvent(MotionEvent.obtain(event.getDownTime(), event.getEventTime(), MotionEvent.ACTION_DOWN, mMotionStartX, mMotionStartY, event.getPressure(), event.getSize(), event.getMetaState(), event.getXPrecision(), event.getYPrecision(), event.getDeviceId(), event.getEdgeFlags()));
				mJustInterceptedAndIgnored = false;
				 
				return true; 
			} 
			return false;