Skip to content

Commit 69499c0

Browse files
[camera_avfoundation] Implementation swift migration - part 3.5 (#9254)
Migrates camera implementation as part of flutter/flutter#119109 This PR consists of everything that was possible to extract from the [part 4](#9219) which includes: * Adds `audioCaptureDeviceFactory` to `FLTCamConfiguration`. * Renames the `lockCaptureOrientation` method of Objective-C type `FLTCam` when exported to Swift. * Renames arguments of the `captureOutput` method of Objective-C type `FLTCam` when exported to Swift. * Changes the `connection` argument type of the `captureOutput` method of the of `FLTCam` class to `AVCaptureConnection`. * Makes `minimum/maximumAvailableZoomFactor` and `minimum/maximumExposureOffset` fields of `FLTCam` readonly. * Remove `@testable` from `camera_avfoundation_objc` imports ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
1 parent c69226f commit 69499c0

38 files changed

+379
-273
lines changed

packages/camera/camera_avfoundation/CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
## NEXT
1+
## 0.9.19+1
22

3+
* Adds `audioCaptureDeviceFactory` to `FLTCamConfiguration`.
4+
* Renames the `lockCaptureOrientation` method of Objective-C type `FLTCam` when exported to Swift.
5+
* Renames arguments of the `captureOutput` method of Objective-C type `FLTCam` when exported to Swift.
6+
* Changes the `connection` argument type of the `captureOutput` method of the of `FLTCam` class to `AVCaptureConnection`.
7+
* Makes `minimum/maximumAvailableZoomFactor` and `minimum/maximumExposureOffset` fields of `FLTCam` readonly.
38
* Updates minimum supported SDK version to Flutter 3.27/Dart 3.6.
49

510
## 0.9.19

packages/camera/camera_avfoundation/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
E1ABED6F2D943B2500AED9CC /* MockCaptureDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = E15BC7ED2D86D85500F66474 /* MockCaptureDevice.swift */; };
6161
E1ABED722D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1ABED702D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift */; };
6262
E1ABED732D943DC700AED9CC /* MockCaptureInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1ABED712D943DC700AED9CC /* MockCaptureInput.swift */; };
63-
E1FFEAAD2D6C8DD700B14107 /* MockFLTCam.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */; };
63+
E1FFEAAD2D6C8DD700B14107 /* MockCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */; };
6464
E1FFEAAF2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAE2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift */; };
6565
E1FFEAB12D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAB02D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift */; };
6666
/* End PBXBuildFile section */
@@ -154,7 +154,7 @@
154154
E1A5F4E22D80259C0005BA64 /* FLTCamSetFlashModeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FLTCamSetFlashModeTests.swift; sourceTree = "<group>"; };
155155
E1ABED702D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockCaptureDeviceInputFactory.swift; sourceTree = "<group>"; };
156156
E1ABED712D943DC700AED9CC /* MockCaptureInput.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockCaptureInput.swift; sourceTree = "<group>"; };
157-
E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockFLTCam.swift; sourceTree = "<group>"; };
157+
E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCamera.swift; sourceTree = "<group>"; };
158158
E1FFEAAE2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraPluginCreateCameraTests.swift; sourceTree = "<group>"; };
159159
E1FFEAB02D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraPluginInitializeCameraTests.swift; sourceTree = "<group>"; };
160160
E67C6DBF6478BE708993169F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
@@ -245,7 +245,7 @@
245245
E142F1392D85940600824824 /* MockCapturePhotoOutput.swift */,
246246
E142F1372D85919700824824 /* MockDeviceOrientationProvider.swift */,
247247
E142F1352D8587F900824824 /* MockCameraDeviceDiscoverer.swift */,
248-
E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */,
248+
E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */,
249249
970ADABF2D6764CC00EFDCD9 /* MockEventChannel.swift */,
250250
E12C4FF72D68E85500515E70 /* MockFLTCameraPermissionManager.swift */,
251251
970ADABD2D6740A900EFDCD9 /* MockWritableData.swift */,
@@ -572,7 +572,7 @@
572572
E1ABED722D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift in Sources */,
573573
977A25202D5A439300931E34 /* AvailableCamerasTests.swift in Sources */,
574574
E142681F2D8566230046CBBC /* CameraTestUtils.swift in Sources */,
575-
E1FFEAAD2D6C8DD700B14107 /* MockFLTCam.swift in Sources */,
575+
E1FFEAAD2D6C8DD700B14107 /* MockCamera.swift in Sources */,
576576
E16602952D8471C0003CFE12 /* FLTCamZoomTests.swift in Sources */,
577577
97BD4A102D5CE13500F857D5 /* CameraSessionPresetsTests.swift in Sources */,
578578
979B3E022D5BA48F009BDE1A /* CameraOrientationTests.swift in Sources */,

packages/camera/camera_avfoundation/example/ios/RunnerTests/AvailableCamerasTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import XCTest
99

1010
// Import Objectice-C part of the implementation when SwiftPM is used.
1111
#if canImport(camera_avfoundation_objc)
12-
@testable import camera_avfoundation_objc
12+
import camera_avfoundation_objc
1313
#endif
1414

1515
final class AvailableCamerasTest: XCTestCase {

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraCaptureSessionQueueRaceConditionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import XCTest
88

99
// Import Objectice-C part of the implementation when SwiftPM is used.
1010
#if canImport(camera_avfoundation_objc)
11-
@testable import camera_avfoundation_objc
11+
import camera_avfoundation_objc
1212
#endif
1313

1414
final class CameraCaptureSessionQueueRaceConditionTests: XCTestCase {

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraMethodChannelTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import XCTest
99

1010
// Import Objectice-C part of the implementation when SwiftPM is used.
1111
#if canImport(camera_avfoundation_objc)
12-
@testable import camera_avfoundation_objc
12+
import camera_avfoundation_objc
1313
#endif
1414

1515
final class CameraMethodChannelTests: XCTestCase {

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraOrientationTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import XCTest
1010

1111
// Import Objectice-C part of the implementation when SwiftPM is used.
1212
#if canImport(camera_avfoundation_objc)
13-
@testable import camera_avfoundation_objc
13+
import camera_avfoundation_objc
1414
#endif
1515

1616
private final class MockUIDevice: UIDevice {
@@ -24,14 +24,14 @@ private final class MockUIDevice: UIDevice {
2424
final class CameraOrientationTests: XCTestCase {
2525
private func createCameraPlugin() -> (
2626
cameraPlugin: CameraPlugin,
27-
mockCamera: MockFLTCam,
27+
mockCamera: MockCamera,
2828
mockEventAPI: MockGlobalEventApi,
2929
mockDevice: MockCaptureDevice,
3030
mockDeviceDiscoverer: MockCameraDeviceDiscoverer,
3131
captureSessionQueue: DispatchQueue
3232
) {
3333
let mockDevice = MockCaptureDevice()
34-
let mockCamera = MockFLTCam()
34+
let mockCamera = MockCamera()
3535
let mockEventAPI = MockGlobalEventApi()
3636
let mockDeviceDiscoverer = MockCameraDeviceDiscoverer()
3737
let captureSessionQueue = DispatchQueue(label: "io.flutter.camera.captureSessionQueue")

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPermissionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import XCTest
99

1010
// Import Objectice-C part of the implementation when SwiftPM is used.
1111
#if canImport(camera_avfoundation_objc)
12-
@testable import camera_avfoundation_objc
12+
import camera_avfoundation_objc
1313
#endif
1414

1515
private final class MockPermissionService: NSObject, FLTPermissionServicing {

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPluginCreateCameraTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import XCTest
88

99
// Import Objectice-C part of the implementation when SwiftPM is used.
1010
#if canImport(camera_avfoundation_objc)
11-
@testable import camera_avfoundation_objc
11+
import camera_avfoundation_objc
1212
#endif
1313

1414
final class CameraPluginCreateCameraTests: XCTestCase {

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPluginDelegatingMethodTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import XCTest
88

99
// Import Objectice-C part of the implementation when SwiftPM is used.
1010
#if canImport(camera_avfoundation_objc)
11-
@testable import camera_avfoundation_objc
11+
import camera_avfoundation_objc
1212
#endif
1313

1414
/// Tests of `CameraPlugin` methods delegating to `FLTCam` instance
1515
final class CameraPluginDelegatingMethodTests: XCTestCase {
16-
private func createCameraPlugin() -> (CameraPlugin, MockFLTCam) {
17-
let mockCamera = MockFLTCam()
16+
private func createCameraPlugin() -> (CameraPlugin, MockCamera) {
17+
let mockCamera = MockCamera()
1818

1919
let cameraPlugin = CameraPlugin(
2020
registry: MockFlutterTextureRegistry(),
@@ -39,7 +39,7 @@ final class CameraPluginDelegatingMethodTests: XCTestCase {
3939
let targetOrientation = FCPPlatformDeviceOrientation.landscapeLeft
4040

4141
var lockCaptureCalled = false
42-
mockCamera.lockCaptureStub = { orientation in
42+
mockCamera.lockCaptureOrientationStub = { orientation in
4343
XCTAssertEqual(orientation, targetOrientation)
4444
lockCaptureCalled = true
4545
}

packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPluginInitializeCameraTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import XCTest
88

99
// Import Objectice-C part of the implementation when SwiftPM is used.
1010
#if canImport(camera_avfoundation_objc)
11-
@testable import camera_avfoundation_objc
11+
import camera_avfoundation_objc
1212
#endif
1313

1414
final class CameraPluginInitializeCameraTests: XCTestCase {
1515
private func createCameraPlugin() -> (
16-
CameraPlugin, MockFLTCam, MockGlobalEventApi, DispatchQueue
16+
CameraPlugin, MockCamera, MockGlobalEventApi, DispatchQueue
1717
) {
18-
let mockCamera = MockFLTCam()
18+
let mockCamera = MockCamera()
1919
let mockGlobalEventApi = MockGlobalEventApi()
2020
let captureSessionQueue = DispatchQueue(label: "io.flutter.camera.captureSessionQueue")
2121

0 commit comments

Comments
 (0)