diff --git a/packages/camera/camera_avfoundation/CHANGELOG.md b/packages/camera/camera_avfoundation/CHANGELOG.md index 97b31bb9ff3..e2bccb635ea 100644 --- a/packages/camera/camera_avfoundation/CHANGELOG.md +++ b/packages/camera/camera_avfoundation/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.11.0+4 + +* Fixes a Swift 6 Sendability mismatch in the `CaptureDevice` protocol's `setExposureTargetBias` completion handler. + ## 0.11.0+3 * Fixes a crash when switching camera while recording video due to disconnected photo output. diff --git a/packages/camera/camera_avfoundation/darwin/Tests/Mocks/MockCaptureDevice.swift b/packages/camera/camera_avfoundation/darwin/Tests/Mocks/MockCaptureDevice.swift index 71fe2fc8f7d..298cfb5b5a9 100644 --- a/packages/camera/camera_avfoundation/darwin/Tests/Mocks/MockCaptureDevice.swift +++ b/packages/camera/camera_avfoundation/darwin/Tests/Mocks/MockCaptureDevice.swift @@ -18,7 +18,7 @@ class MockCaptureDevice: NSObject, CaptureDevice { var setFocusPointOfInterestStub: ((CGPoint) -> Void)? var setExposureModeStub: ((AVCaptureDevice.ExposureMode) -> Void)? var setExposurePointOfInterestStub: ((CGPoint) -> Void)? - var setExposureTargetBiasStub: ((Float, ((CMTime) -> Void)?) -> Void)? + var setExposureTargetBiasStub: ((Float, (@Sendable (CMTime) -> Void)?) -> Void)? var isExposureModeSupportedStub: ((AVCaptureDevice.ExposureMode) -> Bool)? var setVideoZoomFactorStub: ((CGFloat) -> Void)? var lockForConfigurationStub: (() throws -> Void)? @@ -99,7 +99,9 @@ class MockCaptureDevice: NSObject, CaptureDevice { set { setExposurePointOfInterestStub?(newValue) } } - func setExposureTargetBias(_ bias: Float, completionHandler handler: ((CMTime) -> Void)? = nil) { + func setExposureTargetBias( + _ bias: Float, completionHandler handler: (@Sendable (CMTime) -> Void)? = nil + ) { setExposureTargetBiasStub?(bias, handler) } diff --git a/packages/camera/camera_avfoundation/darwin/camera_avfoundation/Sources/camera_avfoundation/CaptureDevice.swift b/packages/camera/camera_avfoundation/darwin/camera_avfoundation/Sources/camera_avfoundation/CaptureDevice.swift index b007cb39b4d..3e6d15cf89b 100644 --- a/packages/camera/camera_avfoundation/darwin/camera_avfoundation/Sources/camera_avfoundation/CaptureDevice.swift +++ b/packages/camera/camera_avfoundation/darwin/camera_avfoundation/Sources/camera_avfoundation/CaptureDevice.swift @@ -45,7 +45,7 @@ protocol CaptureDevice: NSObjectProtocol { var minExposureTargetBias: Float { get } var maxExposureTargetBias: Float { get } func setExposureTargetBias( - _ bias: Float, completionHandler handler: ((CMTime) -> Void)?) + _ bias: Float, completionHandler handler: (@Sendable (CMTime) -> Void)?) func isExposureModeSupported(_ mode: AVCaptureDevice.ExposureMode) -> Bool // Zoom diff --git a/packages/camera/camera_avfoundation/pubspec.yaml b/packages/camera/camera_avfoundation/pubspec.yaml index dd2803b7e82..1fa9c117b9b 100644 --- a/packages/camera/camera_avfoundation/pubspec.yaml +++ b/packages/camera/camera_avfoundation/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_avfoundation description: iOS implementation of the camera plugin. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_avfoundation issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.11.0+3 +version: 0.11.0+4 environment: sdk: ^3.11.0