diff --git a/gradle.properties b/gradle.properties index b5a064e..5eddb0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,8 +17,8 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -VERSION_NAME=1.3.0 -VERSION_CODE=5 +VERSION_NAME=1.3.1 +VERSION_CODE=6 GROUP=com.wdullaer ANDROID_BUILD_MIN_SDK_VERSION=14 diff --git a/library/src/main/java/com/wdullaer/swipeactionadapter/SwipeActionTouchListener.java b/library/src/main/java/com/wdullaer/swipeactionadapter/SwipeActionTouchListener.java index 38aa0ab..e4c5439 100644 --- a/library/src/main/java/com/wdullaer/swipeactionadapter/SwipeActionTouchListener.java +++ b/library/src/main/java/com/wdullaer/swipeactionadapter/SwipeActionTouchListener.java @@ -355,15 +355,10 @@ public void onAnimationEnd(Animator animation) { mVelocityTracker.addMovement(motionEvent); float deltaX = motionEvent.getRawX() - mDownX; float deltaY = motionEvent.getRawY() - mDownY; - if (Math.abs(deltaX) > mSlop && Math.abs(deltaY) < Math.abs(deltaX) / 2) { + if (!mSwiping && Math.abs(deltaX) > mSlop && Math.abs(deltaY) < Math.abs(deltaX) / 2) { mSwiping = true; mSwipingSlop = (deltaX > 0 ? mSlop : -mSlop); - if(!mFar && Math.abs(deltaX) > mViewWidth/2) mFar = true; - if(!mFar) mDirection = (deltaX > 0 ? SwipeDirections.DIRECTION_NORMAL_RIGHT : SwipeDirections.DIRECTION_NORMAL_LEFT); - else mDirection = (deltaX > 0 ? SwipeDirections.DIRECTION_FAR_RIGHT : SwipeDirections.DIRECTION_FAR_LEFT); - mDownViewGroup.showBackground(mDirection); - mListView.requestDisallowInterceptTouchEvent(true); // Cancel ListView's touch (un-highlighting the item) @@ -376,6 +371,12 @@ public void onAnimationEnd(Animator animation) { } if (mSwiping) { + if(mDirection*deltaX < 0) mFar = false; + if(!mFar && Math.abs(deltaX) > mViewWidth/2) mFar = true; + if(!mFar) mDirection = (deltaX > 0 ? SwipeDirections.DIRECTION_NORMAL_RIGHT : SwipeDirections.DIRECTION_NORMAL_LEFT); + else mDirection = (deltaX > 0 ? SwipeDirections.DIRECTION_FAR_RIGHT : SwipeDirections.DIRECTION_FAR_LEFT); + mDownViewGroup.showBackground(mDirection); + mDownView.setTranslationX(deltaX - mSwipingSlop); if(mFadeOut) mDownView.setAlpha(Math.max(0f, Math.min(1f, 1f - 2f * Math.abs(deltaX) / mViewWidth)));