From 3802df113b3a900ca1f634d531bd65e4618783e7 Mon Sep 17 00:00:00 2001 From: Ryan Loebs Date: Tue, 16 Mar 2021 11:38:43 -0700 Subject: [PATCH] Toggle onInterceptTouchEvents based on active gestures instead of adding a new flag --- .../otaliastudios/cameraview/CameraView.java | 30 +++++-------------- cameraview/src/main/res/values/attrs.xml | 2 -- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 650cc75d..656a2a43 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -133,7 +133,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { private Engine mEngine; private Filter mPendingFilter; private int mFrameProcessingExecutors; - private boolean mGesturesEnabled; + private int mActiveGestures; // Components private Handler mUiHandler; @@ -195,7 +195,6 @@ 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(); @@ -607,6 +606,12 @@ public class CameraView extends FrameLayout implements LifecycleObserver { mGestureMap.get(Gesture.SCROLL_VERTICAL) != none); break; } + + mActiveGestures = 0; + for(GestureAction act : mGestureMap.values()) { + mActiveGestures += act == GestureAction.NONE ? 0 : 1; + } + return true; } mapGesture(gesture, none); @@ -636,7 +641,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // Steal our own events if gestures are enabled - return mGesturesEnabled; + return mActiveGestures > 0; } @SuppressLint("ClickableViewAccessibility") @@ -2151,25 +2156,6 @@ 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 diff --git a/cameraview/src/main/res/values/attrs.xml b/cameraview/src/main/res/values/attrs.xml index 1d26158a..9a27f115 100644 --- a/cameraview/src/main/res/values/attrs.xml +++ b/cameraview/src/main/res/values/attrs.xml @@ -36,8 +36,6 @@ - -