@Override public boolean onTouch(View v, MotionEvent ev) { mDetector.onTouchEvent(ev); if (mRemoveEnabled && mDragging && (mRemoveMode == FLING_RIGHT_REMOVE || mRemoveMode == FLING_LEFT_REMOVE)) { mFlingRemoveDetector.onTouchEvent(ev); } int action = ev.getAction() & MotionEvent.ACTION_MASK; switch (action) { case MotionEvent.ACTION_DOWN: mCurrX = (int) ev.getX(); mCurrY = (int) ev.getY(); break; case MotionEvent.ACTION_UP: if (mRemoveEnabled) { final int x = (int) ev.getX(); int thirdW = mDslv.getWidth() / 3; int twoThirdW = mDslv.getWidth() - thirdW; if ((mRemoveMode == SLIDE_RIGHT_REMOVE && x > twoThirdW) || (mRemoveMode == SLIDE_LEFT_REMOVE && x < thirdW)) { mDslv.stopDrag(true); } } case MotionEvent.ACTION_CANCEL: mDragging = false; break; } return false; }
@Override public final boolean onFling( MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // Log.d("mobeta", "on fling remove called"); if (mRemoveEnabled) { switch (mRemoveMode) { case FLING_RIGHT_REMOVE: if (velocityX > mFlingSpeed) { mDslv.stopDrag(true); } break; case FLING_LEFT_REMOVE: if (velocityX < -mFlingSpeed) { mDslv.stopDrag(true); } break; } } return false; }