conversations-classic-ios/ConversationsClassic/View/Main/Conversation/Attachments/MediaPicker/CameraPicker.swift

51 lines
1.9 KiB
Swift
Raw Normal View History

2024-08-17 10:39:40 +00:00
import Foundation
import Photos
import SwiftUI
struct CameraPicker: UIViewControllerRepresentable {
// var sourceType: UIImagePickerController.SourceType
// var completionHandler: (Data, SharingCameraMediaType) -> Void
func makeUIViewController(context: Context) -> UIImagePickerController {
let picker = UIImagePickerController()
picker.sourceType = .camera
picker.delegate = context.coordinator
picker.mediaTypes = [UTType.movie.identifier, UTType.image.identifier]
picker.videoQuality = .typeHigh
picker.videoMaximumDuration = Const.videoDurationLimit
picker.view.backgroundColor = .clear
return picker
}
func updateUIViewController(_: UIImagePickerController, context _: Context) {}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
let parent: CameraPicker
init(_ parent: CameraPicker) {
self.parent = parent
}
func imagePickerController(_: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
// swiftlint:disable:next force_cast
let mediaType = info[.mediaType] as! String
// if mediaType == UTType.image.identifier {
// if let image = info[.originalImage] as? UIImage {
// let data = image.jpegData(compressionQuality: 1.0) ?? Data()
// parent.completionHandler(data, .photo)
// }
// } else if mediaType == UTType.movie.identifier {
// if let url = info[.mediaURL] as? URL {
// let data = try? Data(contentsOf: url)
// parent.completionHandler(data ?? Data(), .video)
// }
// }
}
}
}