Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
folium-app
GitHub Repository: folium-app/Folium
Path: blob/a-new-beginning/Folium-iOS/Actors/CameraAccess.swift
2 views
//
//  CameraAccess.swift
//  Folium-iOS
//
//  Created by Jarrod Norwell on 12/7/2025.
//

/*
 MARK: 29/11/2025
 - Cleaned up CameraAccess actor
 - Made `checkAuthorisationStatus` async
 */

import AVFoundation

actor CameraAccess {
    var authorised: Bool = false
    var status: AVAuthorizationStatus = .notDetermined
    
    func checkAuthorisationStatus() async {
        await withCheckedContinuation { continuation in
            status = AVCaptureDevice.authorizationStatus(for: .video)
            authorised = status == .authorized
            continuation.resume()
        }
    }
    
    func authorise() async -> Bool {
        authorised = await AVCaptureDevice.requestAccess(for: .video)
        return authorised
    }
}