Add flag to disable automatic gesture handling

pull/1068/head
Ryan Loebs 4 years ago
parent a219073468
commit 4a2d5168e4
  1. 24
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  2. 2
      cameraview/src/main/res/values/attrs.xml

@ -133,6 +133,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
private Engine mEngine;
private Filter mPendingFilter;
private int mFrameProcessingExecutors;
private boolean mGesturesEnabled;
// Components
private Handler mUiHandler;
@ -194,6 +195,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
mExperimental = a.getBoolean(R.styleable.CameraView_cameraExperimental, false);
mRequestPermissions = a.getBoolean(R.styleable.CameraView_cameraRequestPermissions,
DEFAULT_REQUEST_PERMISSIONS);
mGesturesEnabled = a.getBoolean(R.styleable.CameraView_cameraGesturesEnabled, true);
mPreview = controls.getPreview();
mEngine = controls.getEngine();
@ -633,7 +635,8 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true; // Steal our own events.
// Steal our own events if gestures are enabled
return mGesturesEnabled;
}
@SuppressLint("ClickableViewAccessibility")
@ -2148,6 +2151,25 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
return mCameraEngine.isTakingPicture();
}
/**
* If enabled all touch events are captured for gesture handling
*
* @param on true if enabled
*/
public void setGesturesEnabled(boolean on) {
mGesturesEnabled = on;
}
/**
* Returns true if touch events are captured by the view for gesture processing,
* true by default
*
* @return boolean indicating touche events are captured
*/
public boolean getGesturesEnabled() {
return mGesturesEnabled;
}
//endregion
//region Callbacks and dispatching

@ -36,6 +36,8 @@
<attr name="cameraPreviewFrameRate" format="integer|reference" />
<attr name="cameraPreviewFrameRateExact" format="boolean" />
<attr name="cameraGesturesEnabled" format="boolean"/>
<attr name="cameraGestureTap" format="enum">
<enum name="none" value="0" />
<enum name="autoFocus" value="1" />

Loading…
Cancel
Save