boolean superState = super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastPoint.set(event.getX(), event.getY());
break;
<BUG>case MotionEvent.ACTION_MOVE:
float xDiff = event.getX() - lastPoint.x;</BUG>
float yDiff = event.getY() - lastPoint.y;
float absXDiff = Math.abs(xDiff);
float absYDiff = Math.abs(yDiff);

boolean superState = super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastPoint.set(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
if (getRecycleItemSize() != 0 || getChildCount() != 0) {
float xDiff = event.getX() - lastPoint.x;
float yDiff = event.getY() - lastPoint.y;
float absXDiff = Math.abs(xDiff);
float absYDiff = Math.abs(yDiff);
