AzureCommunicationUI/sdk/AzureCommunicationUICalling/Sources/Redux/Reducer/PermissionReducer.swift (28 lines of code) (raw):

// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // import Foundation extension Reducer where State == PermissionState, Actions == PermissionAction { static var livePermissionsReducer: Self = Reducer { permissionState, action in var cameraPermission = permissionState.cameraPermission var audioPermission = permissionState.audioPermission switch action { case .audioPermissionRequested: audioPermission = .requesting case .audioPermissionGranted: audioPermission = .granted case .audioPermissionDenied: audioPermission = .denied case .audioPermissionNotAsked: audioPermission = .notAsked case .cameraPermissionRequested: cameraPermission = .requesting case .cameraPermissionGranted: cameraPermission = .granted case .cameraPermissionDenied: cameraPermission = .denied case .cameraPermissionNotAsked: cameraPermission = .notAsked } return PermissionState(audioPermission: audioPermission, cameraPermission: cameraPermission) } }