From b5af30248e4f99e1fd60a064a190822b6d175e2b Mon Sep 17 00:00:00 2001 From: plougsgaard Date: Thu, 15 Sep 2016 00:57:11 +0200 Subject: [PATCH] Add internal prop determining if barcode scanner is wanted. --- .../main/java/com/lwansbrough/RCTCamera/RCTCamera.java | 9 +++++++++ .../java/com/lwansbrough/RCTCamera/RCTCameraView.java | 4 ++++ .../com/lwansbrough/RCTCamera/RCTCameraViewManager.java | 5 +++++ index.js | 3 +++ 4 files changed, 21 insertions(+) diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java index 7381193..e3f5a1a 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCamera.java @@ -17,6 +17,7 @@ public class RCTCamera { private final HashMap _cameraInfos; private final HashMap _cameraTypeToIndex; private final Map _cameras; + private boolean _barcodeScannerEnabled = false; private int _orientation = -1; private int _actualDeviceOrientation = 0; private int _adjustedDeviceOrientation = 0; @@ -134,6 +135,14 @@ public class RCTCamera { adjustPreviewLayout(RCTCameraModule.RCT_CAMERA_TYPE_BACK); } + public boolean isBarcodeScannerEnabled() { + return _barcodeScannerEnabled; + } + + public void setBarcodeScannerEnabled(boolean barcodeScannerEnabled) { + _barcodeScannerEnabled = barcodeScannerEnabled; + } + public int getActualDeviceOrientation() { return _actualDeviceOrientation; } diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraView.java b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraView.java index fcabc70..6718119 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraView.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraView.java @@ -105,6 +105,10 @@ public class RCTCameraView extends ViewGroup { } } + public void setBarcodeScannerEnabled(boolean barcodeScannerEnabled) { + RCTCamera.getInstance().setBarcodeScannerEnabled(barcodeScannerEnabled); + } + private boolean setActualDeviceOrientation(Context context) { int actualDeviceOrientation = getDeviceOrientation(context); if (_actualDeviceOrientation != actualDeviceOrientation) { diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraViewManager.java b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraViewManager.java index aaa5ea1..9fc3ee3 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraViewManager.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraViewManager.java @@ -61,4 +61,9 @@ public class RCTCameraViewManager extends ViewGroupManager { public void setCaptureAudio(RCTCameraView view, boolean captureAudio) { // TODO - implement video mode } + + @ReactProp(name = "barcodeScannerEnabled") + public void setBarcodeScannerEnabled(RCTCameraView view, boolean barcodeScannerEnabled) { + view.setBarcodeScannerEnabled(barcodeScannerEnabled); + } } diff --git a/index.js b/index.js index 87ce6c3..220dfc1 100644 --- a/index.js +++ b/index.js @@ -46,6 +46,8 @@ function convertNativeProps(props) { newProps.barCodeTypes = []; } + newProps.barcodeScannerEnabled = typeof props.onBarCodeRead === 'function' + return newProps; } @@ -89,6 +91,7 @@ export default class Camera extends Component { ]), keepAwake: PropTypes.bool, onBarCodeRead: PropTypes.func, + barcodeScannerEnabled: PropTypes.bool, onFocusChanged: PropTypes.func, onZoomChanged: PropTypes.func, mirrorImage: PropTypes.bool,