From 83d0618e988656dfd9a216b85394ceb5f3a05e9b Mon Sep 17 00:00:00 2001 From: Laurin Quast Date: Wed, 6 Jun 2018 20:30:02 +0200 Subject: [PATCH] fix(rn-camera): fix types, conversions and casts --- ios/RN/RNCamera.m | 2 +- ios/RN/RNCameraManager.m | 8 ++++---- src/RNCamera.js | 8 +++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ios/RN/RNCamera.m b/ios/RN/RNCamera.m index f08f197..53068cb 100644 --- a/ios/RN/RNCamera.m +++ b/ios/RN/RNCamera.m @@ -441,7 +441,7 @@ static NSDictionary *defaultFaceDetectorOptions = nil; [self updateSessionAudioIsMuted:!!options[@"mute"]]; AVCaptureConnection *connection = [self.movieFileOutput connectionWithMediaType:AVMediaTypeVideo]; - if (self.videoStabilizationMode != nil) { + if (self.videoStabilizationMode != 0) { if (connection.isVideoStabilizationSupported == NO) { RCTLogWarn(@"%s: Video Stabilization is not supported on this device.", __func__); } else { diff --git a/ios/RN/RNCameraManager.m b/ios/RN/RNCameraManager.m index 64038fb..d42a34f 100644 --- a/ios/RN/RNCameraManager.m +++ b/ios/RN/RNCameraManager.m @@ -97,10 +97,10 @@ RCT_EXPORT_VIEW_PROPERTY(onPictureSaved, RCTDirectEventBlock); + (NSDictionary *)validVideoStabilizationModes { return @{ - @"off": AVCaptureVideoStabilizationModeOff, - @"standard": AVCaptureVideoStabilizationModeStandard, - @"cinematic": AVCaptureVideoStabilizationModeCinematic, - @"auto": AVCaptureVideoStabilizationModeAuto + @"off": @(AVCaptureVideoStabilizationModeOff), + @"standard": @(AVCaptureVideoStabilizationModeStandard), + @"cinematic": @(AVCaptureVideoStabilizationModeCinematic), + @"auto": @(AVCaptureVideoStabilizationModeAuto) }; } diff --git a/src/RNCamera.js b/src/RNCamera.js index 8e91114..cec27d6 100644 --- a/src/RNCamera.js +++ b/src/RNCamera.js @@ -97,7 +97,7 @@ type PropsType = typeof View.props & { captureAudio?: boolean, useCamera2Api?: boolean, playSoundOnCapture?: boolean, - videoStabilizationMode?: string, + videoStabilizationMode?: number | string, pictureSize?: string, }; @@ -157,7 +157,7 @@ export default class Camera extends React.Component { GoogleVisionBarcodeDetection: CameraManager.GoogleVisionBarcodeDetection, FaceDetection: CameraManager.FaceDetection, CameraStatus, - VideoStabilization: CameraManager.VideoStabilization || {}, + VideoStabilization: CameraManager.VideoStabilization, }; // Values under keys from this object will be transformed to native options @@ -170,6 +170,7 @@ export default class Camera extends React.Component { faceDetectionLandmarks: (CameraManager.FaceDetection || {}).Landmarks, faceDetectionClassifications: (CameraManager.FaceDetection || {}).Classifications, googleVisionBarcodeType: (CameraManager.GoogleVisionBarcodeDetection || {}).BarcodeType, + videoStabilizationMode: CameraManager.VideoStabilization || {}, }; static propTypes = { @@ -200,7 +201,7 @@ export default class Camera extends React.Component { captureAudio: PropTypes.bool, useCamera2Api: PropTypes.bool, playSoundOnCapture: PropTypes.bool, - videoStabilizationMode: PropTypes.string, + videoStabilizationMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), pictureSize: PropTypes.string, }; @@ -234,6 +235,7 @@ export default class Camera extends React.Component { useCamera2Api: false, playSoundOnCapture: false, pictureSize: '1920x1080', + videoStabilizationMode: 0, }; _cameraRef: ?Object;