format identation

This commit is contained in:
Rui Rodrigues 2024-07-16 08:17:06 +01:00
parent 20f8fa2937
commit 621bfe333c
2 changed files with 126 additions and 126 deletions

View File

@ -10,18 +10,18 @@ import UIKit
enum RCTLogLevel: String { enum RCTLogLevel: String {
case trace case trace
case info case info
case warning case warning
case error case error
} }
enum RCTLogSource { enum RCTLogSource {
case native case native
} }
func RCTDefaultLogFunction(_ level: RCTLogLevel, _ source: RCTLogSource, _ file: String, _ line: NSNumber, _ message: String) { func RCTDefaultLogFunction(_ level: RCTLogLevel, _ source: RCTLogSource, _ file: String, _ line: NSNumber, _ message: String) {
print(level.rawValue, "-", message) print(level.rawValue, "-", message)
} }
typealias RCTDirectEventBlock = (Any?) -> Void typealias RCTDirectEventBlock = (Any?) -> Void
@ -30,53 +30,53 @@ typealias RCTPromiseRejectBlock = (String, String, NSError?) -> Void
typealias RCTResponseSenderBlock = (Any) -> Void typealias RCTResponseSenderBlock = (Any) -> Void
func NSNull() -> [String: String] { func NSNull() -> [String: String] {
return [:] return [:]
} }
func makeReactError(_ cameraError: CameraError, cause: NSError?) -> [String: Any] { func makeReactError(_ cameraError: CameraError, cause: NSError?) -> [String: Any] {
var causeDictionary: [String: Any]? var causeDictionary: [String: Any]?
if let cause = cause { if let cause = cause {
causeDictionary = [ causeDictionary = [
"cause": "\(cause.domain): \(cause.code) \(cause.description)", "cause": "\(cause.domain): \(cause.code) \(cause.description)",
"userInfo": cause.userInfo "userInfo": cause.userInfo
]
}
return [
"error": "\(cameraError.code): \(cameraError.message)",
"extra": [
"code": cameraError.code,
"message": cameraError.message,
"cause": causeDictionary ?? NSNull(),
]
] ]
}
return [
"error": "\(cameraError.code): \(cameraError.message)",
"extra": [
"code": cameraError.code,
"message": cameraError.message,
"cause": causeDictionary ?? NSNull(),
]
]
} }
func makeReactError(_ cameraError: CameraError) -> [String: Any] { func makeReactError(_ cameraError: CameraError) -> [String: Any] {
return makeReactError(cameraError, cause: nil) return makeReactError(cameraError, cause: nil)
} }
class RCTFPSGraph: UIView { class RCTFPSGraph: UIView {
convenience init(frame: CGRect, color: UIColor) { convenience init(frame: CGRect, color: UIColor) {
self.init(frame: frame) self.init(frame: frame)
} }
func onTick(_ tick: CFTimeInterval) {
func onTick(_ tick: CFTimeInterval) { }
}
} }
func RCTTempFilePath(_ ext: String, _ error: ErrorPointer) -> String? { func RCTTempFilePath(_ ext: String, _ error: ErrorPointer) -> String? {
let directory = NSTemporaryDirectory().appending("ReactNative") let directory = NSTemporaryDirectory().appending("ReactNative")
let fm = FileManager.default let fm = FileManager.default
if fm.fileExists(atPath: directory) { if fm.fileExists(atPath: directory) {
try! fm.removeItem(atPath: directory) try! fm.removeItem(atPath: directory)
} }
if !fm.fileExists(atPath: directory) { if !fm.fileExists(atPath: directory) {
try! fm.createDirectory(atPath: directory, withIntermediateDirectories: true) try! fm.createDirectory(atPath: directory, withIntermediateDirectories: true)
} }
return directory return directory
.appending("/").appending(UUID().uuidString) .appending("/").appending(UUID().uuidString)
.appending(".").appending(ext) .appending(".").appending(ext)
} }

View File

@ -10,102 +10,102 @@ import UIKit
import AVFoundation import AVFoundation
class ViewController: UIViewController { class ViewController: UIViewController {
@IBOutlet weak var recordButton: UIButton!
let cameraView = CameraView()
override func viewDidLoad() {
super.viewDidLoad()
@IBOutlet weak var recordButton: UIButton! cameraView.translatesAutoresizingMaskIntoConstraints = false;
view.insertSubview(cameraView, at: 0)
NSLayoutConstraint.activate([
cameraView.topAnchor.constraint(equalTo: view.topAnchor),
cameraView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
cameraView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
cameraView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
])
let cameraView = CameraView() recordButton.isHidden = true
cameraView.onInitialized = { _ in
override func viewDidLoad() { DispatchQueue.main.async {
super.viewDidLoad() self.recordButton.isHidden = false
}
cameraView.translatesAutoresizingMaskIntoConstraints = false; }
view.insertSubview(cameraView, at: 0) cameraView.onInitReady = { json in
NSLayoutConstraint.activate([ print("onInitReady:", json ?? "nil")
cameraView.topAnchor.constraint(equalTo: view.topAnchor), }
cameraView.leadingAnchor.constraint(equalTo: view.leadingAnchor), cameraView.onVideoChunkReady = { json in
cameraView.trailingAnchor.constraint(equalTo: view.trailingAnchor), print("onVideoChunkReady:", json ?? "nil")
cameraView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
])
recordButton.isHidden = true
cameraView.onInitialized = { _ in
DispatchQueue.main.async {
self.recordButton.isHidden = false
}
}
cameraView.onInitReady = { json in
print("onInitReady:", json ?? "nil")
}
cameraView.onVideoChunkReady = { json in
print("onVideoChunkReady:", json ?? "nil")
}
Task { @MainActor in
await requestAuthorizations()
cameraView.photo = true
cameraView.video = true
cameraView.audio = false
cameraView.isActive = true
cameraView.cameraId = getCameraDeviceId() as NSString?
cameraView.didSetProps([])
}
} }
func isAuthorized(for mediaType: AVMediaType) async -> Bool { Task { @MainActor in
let status = AVCaptureDevice.authorizationStatus(for: mediaType) await requestAuthorizations()
var isAuthorized = status == .authorized
if status == .notDetermined { cameraView.photo = true
isAuthorized = await AVCaptureDevice.requestAccess(for: mediaType) cameraView.video = true
} cameraView.audio = false
return isAuthorized cameraView.isActive = true
cameraView.cameraId = getCameraDeviceId() as NSString?
cameraView.didSetProps([])
} }
}
func requestAuthorizations() async { func isAuthorized(for mediaType: AVMediaType) async -> Bool {
guard await isAuthorized(for: .video) else { return } let status = AVCaptureDevice.authorizationStatus(for: mediaType)
guard await isAuthorized(for: .audio) else { return } var isAuthorized = status == .authorized
// Set up the capture session. if status == .notDetermined {
isAuthorized = await AVCaptureDevice.requestAccess(for: mediaType)
} }
return isAuthorized
}
func requestAuthorizations() async {
guard await isAuthorized(for: .video) else { return }
guard await isAuthorized(for: .audio) else { return }
// Set up the capture session.
}
private func getCameraDeviceId() -> String? {
let deviceTypes: [AVCaptureDevice.DeviceType] = [
.builtInWideAngleCamera
]
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: .video, position: .back)
private func getCameraDeviceId() -> String? { let device = discoverySession.devices.first
let deviceTypes: [AVCaptureDevice.DeviceType] = [
.builtInWideAngleCamera
]
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: .video, position: .back)
let device = discoverySession.devices.first
return device?.uniqueID
}
@IBAction return device?.uniqueID
func toggleRecord(_ button: UIButton) { }
if button.title(for: .normal) == "Stop" {
@IBAction
cameraView.stopRecording(promise: Promise( func toggleRecord(_ button: UIButton) {
resolver: { result in if button.title(for: .normal) == "Stop" {
print("result")
}, rejecter: { code, message, cause in cameraView.stopRecording(promise: Promise(
print("error") resolver: { result in
})) print("result")
}, rejecter: { code, message, cause in
button.setTitle("Record", for: .normal) print("error")
button.configuration = .filled() }))
} else { button.setTitle("Record", for: .normal)
cameraView.startRecording( button.configuration = .filled()
options: [
"fileType": "mp4", } else {
"videoCodec": "h265", cameraView.startRecording(
]) { callback in options: [
print("callback", callback) "fileType": "mp4",
} "videoCodec": "h265",
]) { callback in
button.setTitle("Stop", for: .normal) print("callback", callback)
button.configuration = .bordered()
} }
button.setTitle("Stop", for: .normal)
button.configuration = .bordered()
} }
}
} }