|
|
|
@ -57,9 +57,7 @@ extension Permissions {
|
|
|
|
|
presentingViewController: UIViewController? = nil,
|
|
|
|
|
onNotGranted: (() -> Void)? = nil
|
|
|
|
|
) {
|
|
|
|
|
switch AVAudioSession.sharedInstance().recordPermission {
|
|
|
|
|
case .granted: break
|
|
|
|
|
case .denied:
|
|
|
|
|
let handlePermissionDenied: () -> Void = {
|
|
|
|
|
guard
|
|
|
|
|
Singleton.hasAppContext,
|
|
|
|
|
let presentingViewController: UIViewController = (presentingViewController ?? Singleton.appContext.frontmostViewController)
|
|
|
|
@ -85,13 +83,29 @@ extension Permissions {
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
presentingViewController.present(confirmationModal, animated: true, completion: nil)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if #available(iOS 17.0, *) {
|
|
|
|
|
switch AVAudioApplication.shared.recordPermission {
|
|
|
|
|
case .granted: break
|
|
|
|
|
case .denied: handlePermissionDenied()
|
|
|
|
|
case .undetermined:
|
|
|
|
|
onNotGranted?()
|
|
|
|
|
AVAudioSession.sharedInstance().requestRecordPermission { _ in }
|
|
|
|
|
|
|
|
|
|
default: break
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
switch AVAudioSession.sharedInstance().recordPermission {
|
|
|
|
|
case .granted: break
|
|
|
|
|
case .denied: handlePermissionDenied()
|
|
|
|
|
case .undetermined:
|
|
|
|
|
onNotGranted?()
|
|
|
|
|
AVAudioSession.sharedInstance().requestRecordPermission { _ in }
|
|
|
|
|
|
|
|
|
|
default: break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static func requestLibraryPermissionIfNeeded(
|
|
|
|
|