Skip to content

Commit 81fd8a1

Browse files
Fix Swipe Left/Right bug in CameraView.java
1 parent 0470e35 commit 81fd8a1

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -669,32 +669,34 @@ public boolean onTouchEvent(MotionEvent event) {
669669
onGesture(mTapGestureFinder, options);
670670
}
671671

672-
if(event.getAction() == MotionEvent.ACTION_DOWN) x1 = event.getX();
673-
if(event.getAction() == MotionEvent.ACTION_UP) {
674-
x2 = event.getX();
675-
float deltaX = x2 - x1;
676-
if(deltaX > MIN_SWIPE_DISTANCE) {
677-
mUiHandler.post(new Runnable() {
678-
@Override
679-
public void run() {
680-
for (CameraListener listener : mListeners) {
681-
listener.onSwipeRight();
672+
// Only detect swipes for single-finger gestures
673+
if(event.getPointerCount() == 1) {
674+
if(event.getAction() == MotionEvent.ACTION_DOWN) x1 = event.getX();
675+
if(event.getAction() == MotionEvent.ACTION_UP) {
676+
x2 = event.getX();
677+
float deltaX = x2 - x1;
678+
if(deltaX > MIN_SWIPE_DISTANCE) {
679+
mUiHandler.post(new Runnable() {
680+
@Override
681+
public void run() {
682+
for (CameraListener listener : mListeners) {
683+
listener.onSwipeRight();
684+
}
682685
}
683-
}
684-
});
685-
}
686-
if (deltaX < MIN_SWIPE_DISTANCE) {
687-
mUiHandler.post(new Runnable() {
688-
@Override
689-
public void run() {
690-
for (CameraListener listener : mListeners) {
691-
listener.onSwipeLeft();
686+
});
687+
}
688+
if (deltaX < -MIN_SWIPE_DISTANCE) {
689+
mUiHandler.post(new Runnable() {
690+
@Override
691+
public void run() {
692+
for (CameraListener listener : mListeners) {
693+
listener.onSwipeLeft();
694+
}
692695
}
693-
}
694-
});
696+
});
697+
}
695698
}
696699
}
697-
698700
return true;
699701
}
700702

0 commit comments

Comments
 (0)