Skip to content

[camera_avfoundation] Implementation swift migration - part 3.5 #9254

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion packages/camera/camera_avfoundation/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
## NEXT
## 0.9.19+1

* 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.
* Updates minimum supported SDK version to Flutter 3.27/Dart 3.6.

## 0.9.19
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
E1ABED6F2D943B2500AED9CC /* MockCaptureDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = E15BC7ED2D86D85500F66474 /* MockCaptureDevice.swift */; };
E1ABED722D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1ABED702D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift */; };
E1ABED732D943DC700AED9CC /* MockCaptureInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1ABED712D943DC700AED9CC /* MockCaptureInput.swift */; };
E1FFEAAD2D6C8DD700B14107 /* MockFLTCam.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */; };
E1FFEAAD2D6C8DD700B14107 /* MockCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */; };
E1FFEAAF2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAAE2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift */; };
E1FFEAB12D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FFEAB02D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -154,7 +154,7 @@
E1A5F4E22D80259C0005BA64 /* FLTCamSetFlashModeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FLTCamSetFlashModeTests.swift; sourceTree = "<group>"; };
E1ABED702D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockCaptureDeviceInputFactory.swift; sourceTree = "<group>"; };
E1ABED712D943DC700AED9CC /* MockCaptureInput.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockCaptureInput.swift; sourceTree = "<group>"; };
E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockFLTCam.swift; sourceTree = "<group>"; };
E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCamera.swift; sourceTree = "<group>"; };
E1FFEAAE2D6CDA8C00B14107 /* CameraPluginCreateCameraTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraPluginCreateCameraTests.swift; sourceTree = "<group>"; };
E1FFEAB02D6CDE5B00B14107 /* CameraPluginInitializeCameraTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraPluginInitializeCameraTests.swift; sourceTree = "<group>"; };
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>"; };
Expand Down Expand Up @@ -245,7 +245,7 @@
E142F1392D85940600824824 /* MockCapturePhotoOutput.swift */,
E142F1372D85919700824824 /* MockDeviceOrientationProvider.swift */,
E142F1352D8587F900824824 /* MockCameraDeviceDiscoverer.swift */,
E1FFEAAC2D6C8DD700B14107 /* MockFLTCam.swift */,
E1FFEAAC2D6C8DD700B14107 /* MockCamera.swift */,
970ADABF2D6764CC00EFDCD9 /* MockEventChannel.swift */,
E12C4FF72D68E85500515E70 /* MockFLTCameraPermissionManager.swift */,
970ADABD2D6740A900EFDCD9 /* MockWritableData.swift */,
Expand Down Expand Up @@ -572,7 +572,7 @@
E1ABED722D943DC700AED9CC /* MockCaptureDeviceInputFactory.swift in Sources */,
977A25202D5A439300931E34 /* AvailableCamerasTests.swift in Sources */,
E142681F2D8566230046CBBC /* CameraTestUtils.swift in Sources */,
E1FFEAAD2D6C8DD700B14107 /* MockFLTCam.swift in Sources */,
E1FFEAAD2D6C8DD700B14107 /* MockCamera.swift in Sources */,
E16602952D8471C0003CFE12 /* FLTCamZoomTests.swift in Sources */,
97BD4A102D5CE13500F857D5 /* CameraSessionPresetsTests.swift in Sources */,
979B3E022D5BA48F009BDE1A /* CameraOrientationTests.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class AvailableCamerasTest: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import XCTest

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

final class CameraCaptureSessionQueueRaceConditionTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class CameraMethodChannelTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import XCTest

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

private final class MockUIDevice: UIDevice {
Expand All @@ -24,14 +24,14 @@ private final class MockUIDevice: UIDevice {
final class CameraOrientationTests: XCTestCase {
private func createCameraPlugin() -> (
cameraPlugin: CameraPlugin,
mockCamera: MockFLTCam,
mockCamera: MockCamera,
mockEventAPI: MockGlobalEventApi,
mockDevice: MockCaptureDevice,
mockDeviceDiscoverer: MockCameraDeviceDiscoverer,
captureSessionQueue: DispatchQueue
) {
let mockDevice = MockCaptureDevice()
let mockCamera = MockFLTCam()
let mockCamera = MockCamera()
let mockEventAPI = MockGlobalEventApi()
let mockDeviceDiscoverer = MockCameraDeviceDiscoverer()
let captureSessionQueue = DispatchQueue(label: "io.flutter.camera.captureSessionQueue")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

private final class MockPermissionService: NSObject, FLTPermissionServicing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import XCTest

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

final class CameraPluginCreateCameraTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ import XCTest

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

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

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

var lockCaptureCalled = false
mockCamera.lockCaptureStub = { orientation in
mockCamera.lockCaptureOrientationStub = { orientation in
XCTAssertEqual(orientation, targetOrientation)
lockCaptureCalled = true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import XCTest

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

final class CameraPluginInitializeCameraTests: XCTestCase {
private func createCameraPlugin() -> (
CameraPlugin, MockFLTCam, MockGlobalEventApi, DispatchQueue
CameraPlugin, MockCamera, MockGlobalEventApi, DispatchQueue
) {
let mockCamera = MockFLTCam()
let mockCamera = MockCamera()
let mockGlobalEventApi = MockGlobalEventApi()
let captureSessionQueue = DispatchQueue(label: "io.flutter.camera.captureSessionQueue")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class CameraPreviewPauseTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import XCTest

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

final class CameraPropertiesTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

/// Includes test cases related to resolution presets setting operations for FLTCam class.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

private let testResolutionPreset = FCPPlatformResolutionPreset.medium
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ enum CameraTestUtils {
resolutionPreset: FCPPlatformResolutionPreset.medium),
mediaSettingsWrapper: FLTCamMediaSettingsAVWrapper(),
captureDeviceFactory: { _ in captureDeviceMock },
audioCaptureDeviceFactory: { MockCaptureDevice() },
captureSessionFactory: { videoSessionMock },
captureSessionQueue: captureSessionQueue,
captureDeviceInputFactory: MockCaptureDeviceInputFactory(),
Expand Down Expand Up @@ -173,6 +174,14 @@ enum CameraTestUtils {

return sampleBuffer!
}

static func createTestAudioOutput() -> AVCaptureOutput {
return AVCaptureAudioDataOutput()
}

static func createTestConnection(_ output: AVCaptureOutput) -> AVCaptureConnection {
return AVCaptureConnection(inputPorts: [], output: output)
}
}

extension XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import XCTest

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

final class FLTCamExposureTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class FLTCamSetFocusModeTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class FLTCamSetDeviceOrientationTests: XCTestCase {
Expand Down Expand Up @@ -73,7 +73,7 @@ final class FLTCamSetDeviceOrientationTests: XCTestCase {
videoSetVideoOrientationCalled = true
}

camera.lockCapture(FCPPlatformDeviceOrientation.portraitDown)
camera.lockCaptureOrientation(FCPPlatformDeviceOrientation.portraitDown)

camera.setDeviceOrientation(.landscapeLeft)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class FLTCamSetFlashModeTests: XCTestCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import XCTest

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

final class FLTCamZoomTests: XCTestCase {
Expand Down
Loading