diff --git a/src/main/java/org/quantumbadger/redreader/views/imageview/BasicGestureHandler.java b/src/main/java/org/quantumbadger/redreader/views/imageview/BasicGestureHandler.java index b3566376f..e8a389edc 100644 --- a/src/main/java/org/quantumbadger/redreader/views/imageview/BasicGestureHandler.java +++ b/src/main/java/org/quantumbadger/redreader/views/imageview/BasicGestureHandler.java @@ -71,7 +71,7 @@ public void onFingersMoved() { } @Override - public void onFingerUp(final FingerTracker.Finger finger) { + public void onFingerUp(final FingerTracker.Finger finger, final boolean cancelled) { mCurrentFingerCount--; @@ -80,7 +80,8 @@ public void onFingerUp(final FingerTracker.Finger finger) { mListener.onHorizontalSwipeEnd(); // TODO - if(mFirstFinger.mDownDuration < 300 + if(!cancelled + && mFirstFinger.mDownDuration < 300 && mFirstFinger.mPosDifference.x < 20 && mFirstFinger.mPosDifference.y < 20) { diff --git a/src/main/java/org/quantumbadger/redreader/views/imageview/FingerTracker.java b/src/main/java/org/quantumbadger/redreader/views/imageview/FingerTracker.java index f40234e0b..2bfc08d6b 100644 --- a/src/main/java/org/quantumbadger/redreader/views/imageview/FingerTracker.java +++ b/src/main/java/org/quantumbadger/redreader/views/imageview/FingerTracker.java @@ -29,7 +29,7 @@ public interface FingerListener { void onFingersMoved(); - void onFingerUp(Finger finger); + void onFingerUp(Finger finger, boolean cancelled); } private final Finger[] mFingers = new Finger[10]; @@ -85,7 +85,7 @@ public void onTouchEvent(final MotionEvent event) { for(final Finger f : mFingers) { if(f.mActive && f.mAndroidId == id) { f.onUp(event); - mListener.onFingerUp(f); + mListener.onFingerUp(f, false); break; } } @@ -101,7 +101,7 @@ public void onTouchEvent(final MotionEvent event) { for(final Finger f : mFingers) { if(f.mActive) { f.onUp(event); - mListener.onFingerUp(f); + mListener.onFingerUp(f, true); } } diff --git a/src/main/java/org/quantumbadger/redreader/views/imageview/ImageViewDisplayListManager.java b/src/main/java/org/quantumbadger/redreader/views/imageview/ImageViewDisplayListManager.java index d96424472..a415ce5c3 100644 --- a/src/main/java/org/quantumbadger/redreader/views/imageview/ImageViewDisplayListManager.java +++ b/src/main/java/org/quantumbadger/redreader/views/imageview/ImageViewDisplayListManager.java @@ -477,7 +477,10 @@ public synchronized void onFingersMoved() { } @Override - public synchronized void onFingerUp(final FingerTracker.Finger finger) { + public synchronized void onFingerUp( + final FingerTracker.Finger finger, + final boolean cancelled + ) { if(mScrollbars == null) { return; @@ -498,7 +501,7 @@ public synchronized void onFingerUp(final FingerTracker.Finger finger) { case DOUBLE_TAP_ONE_FINGER_DOWN: - if(finger.mDownDuration < TAP_MAX_DURATION_MS) { + if(!cancelled && finger.mDownDuration < TAP_MAX_DURATION_MS) { onDoubleTap(finger.mCurrentPos); } @@ -508,7 +511,7 @@ public synchronized void onFingerUp(final FingerTracker.Finger finger) { case ONE_FINGER_DOWN: - if(finger.mDownDuration < TAP_MAX_DURATION_MS) { + if(!cancelled && finger.mDownDuration < TAP_MAX_DURATION_MS) { // Maybe a single tap mDoubleTapGapTimer.startTimer();