From 9df08be5eb1a2b4786b6177724244201dd079f7a Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Wed, 13 Jan 2021 10:50:51 +0100 Subject: [PATCH 1/4] Set default flash setting to off if flash is not supported --- packages/camera/camera/ios/Classes/CameraPlugin.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/camera/camera/ios/Classes/CameraPlugin.m b/packages/camera/camera/ios/Classes/CameraPlugin.m index 40d93fde7af6..d96fbc20391b 100644 --- a/packages/camera/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/camera/ios/Classes/CameraPlugin.m @@ -365,12 +365,12 @@ - (instancetype)initWithCameraName:(NSString *)cameraName _enableAudio = enableAudio; _dispatchQueue = dispatchQueue; _captureSession = [[AVCaptureSession alloc] init]; - _flashMode = FlashModeAuto; + _captureDevice = [AVCaptureDevice deviceWithUniqueID:cameraName]; + _flashMode = _captureDevice.flashMode ? FlashModeAuto : FlashModeOff; _exposureMode = ExposureModeAuto; _focusMode = FocusModeAuto; _lockedCaptureOrientation = UIDeviceOrientationUnknown; - - _captureDevice = [AVCaptureDevice deviceWithUniqueID:cameraName]; + NSError *localError = nil; _captureVideoInput = [AVCaptureDeviceInput deviceInputWithDevice:_captureDevice error:&localError]; From 68345fb6f89980bd86ddec8ee0e6a6ec71221e51 Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Wed, 13 Jan 2021 10:59:14 +0100 Subject: [PATCH 2/4] Update version number --- packages/camera/camera/CHANGELOG.md | 4 ++++ packages/camera/camera/ios/Classes/CameraPlugin.m | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera/CHANGELOG.md b/packages/camera/camera/CHANGELOG.md index 972ca5a31503..66398996e053 100644 --- a/packages/camera/camera/CHANGELOG.md +++ b/packages/camera/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.0+5 + +* Fixes crash when taking a picture on iOS devices without flash. + ## 0.7.0+4 * Make sure the configured zoom scale is copied over to the final capture builder on Android. Fixes the issue where the preview is zoomed but the final picture is not. diff --git a/packages/camera/camera/ios/Classes/CameraPlugin.m b/packages/camera/camera/ios/Classes/CameraPlugin.m index d96fbc20391b..8d0b1891b12a 100644 --- a/packages/camera/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/camera/ios/Classes/CameraPlugin.m @@ -366,7 +366,7 @@ - (instancetype)initWithCameraName:(NSString *)cameraName _dispatchQueue = dispatchQueue; _captureSession = [[AVCaptureSession alloc] init]; _captureDevice = [AVCaptureDevice deviceWithUniqueID:cameraName]; - _flashMode = _captureDevice.flashMode ? FlashModeAuto : FlashModeOff; + _flashMode = _captureDevice.hasFlash ? FlashModeAuto : FlashModeOff; _exposureMode = ExposureModeAuto; _focusMode = FocusModeAuto; _lockedCaptureOrientation = UIDeviceOrientationUnknown; From d233d7f6feee647555492fd52a622e1a990e427d Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Thu, 14 Jan 2021 13:34:02 +0100 Subject: [PATCH 3/4] Fix formatting --- packages/camera/camera/ios/Classes/CameraPlugin.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera/ios/Classes/CameraPlugin.m b/packages/camera/camera/ios/Classes/CameraPlugin.m index 8d0b1891b12a..d97ce88a58d8 100644 --- a/packages/camera/camera/ios/Classes/CameraPlugin.m +++ b/packages/camera/camera/ios/Classes/CameraPlugin.m @@ -370,7 +370,7 @@ - (instancetype)initWithCameraName:(NSString *)cameraName _exposureMode = ExposureModeAuto; _focusMode = FocusModeAuto; _lockedCaptureOrientation = UIDeviceOrientationUnknown; - + NSError *localError = nil; _captureVideoInput = [AVCaptureDeviceInput deviceInputWithDevice:_captureDevice error:&localError]; From 05c9fcc19696b37e78f8fafd5cc9f873f3f924d1 Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Thu, 14 Jan 2021 19:28:43 +0100 Subject: [PATCH 4/4] Updated master branch --- packages/camera/camera/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera/pubspec.yaml b/packages/camera/camera/pubspec.yaml index 5ac4b57a15ef..406ff94ab1b9 100644 --- a/packages/camera/camera/pubspec.yaml +++ b/packages/camera/camera/pubspec.yaml @@ -2,7 +2,7 @@ name: camera description: A Flutter plugin for getting information about and controlling the camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video, and streaming image buffers to dart. -version: 0.7.0+4 +version: 0.7.0+5 homepage: https://github.com/flutter/plugins/tree/master/packages/camera/camera dependencies: