| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- //
- // LNPermissionHelper.swift
- // Lanu
- //
- // Created by OneeChan on 2026/03/08.
- //
- import Foundation
- import Photos
- import AVFoundation
- import AVFAudio
- import UserNotifications
- struct LNPermissionHelper {
- static func requestPhotoLibraryAuthorization(_ completion: @escaping (PHAuthorizationStatus) -> Void) {
- PHPhotoLibrary.requestAuthorization { status in
- runOnMain {
- completion(status)
- }
- }
- }
- static func cameraAuthorizationStatus() -> AVAuthorizationStatus {
- AVCaptureDevice.authorizationStatus(for: .video)
- }
- static func requestCameraAccess(_ completion: @escaping (Bool) -> Void) {
- AVCaptureDevice.requestAccess(for: .video) { granted in
- runOnMain {
- completion(granted)
- }
- }
- }
- static func microphonePermission() -> AVAudioSession.RecordPermission {
- AVAudioSession.sharedInstance().recordPermission
- }
- static func requestMicrophoneAccess(_ completion: @escaping (Bool) -> Void) {
- AVAudioSession.sharedInstance().requestRecordPermission { granted in
- runOnMain {
- completion(granted)
- }
- }
- }
- static func requestNotificationAuthorization(options: UNAuthorizationOptions,
- completion: @escaping (Bool, Error?) -> Void) {
- UNUserNotificationCenter.current().requestAuthorization(options: options) { granted, error in
- runOnMain {
- completion(granted, error)
- }
- }
- }
- static func fetchNotificationSettings(_ completion: @escaping (UNNotificationSettings) -> Void) {
- UNUserNotificationCenter.current().getNotificationSettings { settings in
- runOnMain {
- completion(settings)
- }
- }
- }
- }
|