AzureCommunicationUI/sdk/AzureCommunicationUICalling/Sources/Redux/Action/PermissionAction.swift (38 lines of code) (raw):

// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // import Foundation import Combine enum PermissionAction: Equatable { case audioPermissionRequested case audioPermissionGranted case audioPermissionDenied case audioPermissionNotAsked case cameraPermissionRequested case cameraPermissionGranted case cameraPermissionDenied case cameraPermissionNotAsked static func generateAction(permission: AppPermission, state: AppPermission.Status) -> PermissionAction { switch permission { case .audioPermission: switch state { case .granted: return .audioPermissionGranted case .denied: return .audioPermissionDenied case .notAsked: return .audioPermissionNotAsked default: return .audioPermissionDenied } case .cameraPermission: switch state { case .granted: return .cameraPermissionGranted case .denied: return .cameraPermissionDenied case .notAsked: return .cameraPermissionNotAsked default: return .cameraPermissionDenied } } } }