AzureCommunicationUI/sdk/AzureCommunicationUICalling/Sources/Model/ParticipantCapability.swift (47 lines of code) (raw):

// // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // import Foundation import AzureCommunicationCalling internal class ParticipantCapability: Equatable { static func == (lhs: ParticipantCapability, rhs: ParticipantCapability) -> Bool { if lhs.allowed == rhs.allowed && lhs.capabilityResolutionReason == rhs.capabilityResolutionReason && lhs.participantCapabilityType == rhs.participantCapabilityType { return true } else { return false } } private let participantCapabilityType: ParticipantCapabilityType private let isAllowed: Bool private let capabilityResolutionReason: CapabilityResolutionReason init( participantCapabilityType: ParticipantCapabilityType, isAllowed: Bool, capabilityResolutionReason: CapabilityResolutionReason) { self.participantCapabilityType = participantCapabilityType self.isAllowed = isAllowed self.capabilityResolutionReason = capabilityResolutionReason } var type: ParticipantCapabilityType { return self.participantCapabilityType } var allowed: Bool { return self.isAllowed } var reason: CapabilityResolutionReason { return self.capabilityResolutionReason } } extension AzureCommunicationCalling.ParticipantCapability { func toParticipantCapability() -> ParticipantCapability { let isCapabilitySupportedByCallingUi = self.type.toParticipantCapabilityType() != .none if isCapabilitySupportedByCallingUi { return ParticipantCapability(participantCapabilityType: self.type.toParticipantCapabilityType(), isAllowed: self.isAllowed, capabilityResolutionReason: self.reason.toCapabilityResolutionReason()) } return ParticipantCapability( participantCapabilityType: .none, isAllowed: false, capabilityResolutionReason: .notInitialized) } }