func startCallWithDeprecatedLaunch()

in AzureCommunicationUI/AzureCommunicationUIDemoApp/Sources/Views/CallingDemoView.swift [805:896]


    func startCallWithDeprecatedLaunch() async {
        if let credential = try? await getTokenCredential(),
           let callComposite = try? await createCallComposite() {
            let link = getMeetingLink()
            var localOptions = getLocalOptions(callComposite: callComposite)
            switch envConfigSubject.selectedMeetingType {
            case .groupCall:
                let uuid = try? parseUUID(from: link)
                // Checking if UUID parsing was successful
                if let uuid = uuid {
                    if envConfigSubject.displayName.isEmpty {
                        // Launch call composite without displayName
                        callComposite.launch(remoteOptions: RemoteOptions(for: .groupCall(groupId: uuid),
                                                                          credential: credential),
                                             localOptions: localOptions)
                    } else {
                        // Launch call composite with displayName
                        callComposite.launch(remoteOptions: RemoteOptions(for: .groupCall(groupId: uuid),
                                                                          credential: credential,
                                                                          displayName: envConfigSubject.displayName),
                                             localOptions: localOptions)
                    }
                } else {
                    // Handle the case where UUID parsing fails
                    showError(for: DemoError.invalidGroupCallId.getErrorCode())
                    return
                }
            case .teamsMeeting:
                if !envConfigSubject.teamsMeetingLink.isEmpty {
                    if envConfigSubject.displayName.isEmpty {
                        callComposite.launch(
                            remoteOptions: RemoteOptions(for: .teamsMeeting(teamsLink:
                                                                                envConfigSubject.teamsMeetingLink),
                                                         credential: credential),
                            localOptions: localOptions
                        )
                    } else {
                        callComposite.launch(
                            remoteOptions: RemoteOptions(for: .teamsMeeting(teamsLink:
                                                                                envConfigSubject.teamsMeetingLink),
                                                         credential: credential,
                                                         displayName: envConfigSubject.displayName),
                            localOptions: localOptions
                        )
                    }
                } else if !envConfigSubject.teamsMeetingId.isEmpty && !envConfigSubject.teamsMeetingPasscode.isEmpty {
                    if envConfigSubject.displayName.isEmpty {
                        callComposite.launch(
                            remoteOptions: RemoteOptions(for: .teamsMeetingId(meetingId:
                                                                                envConfigSubject.teamsMeetingId,
                                                                              meetingPasscode:
                                                                                envConfigSubject.teamsMeetingPasscode),
                                                         credential: credential),
                            localOptions: localOptions
                        )
                    } else {
                        callComposite.launch(
                            remoteOptions: RemoteOptions(for: .teamsMeetingId(meetingId:
                                                                                envConfigSubject.teamsMeetingId,
                                                                              meetingPasscode:
                                                                                envConfigSubject.teamsMeetingPasscode),
                                                         credential: credential,
                                                         displayName: envConfigSubject.displayName),
                            localOptions: localOptions
                        )
                    }
                }
            case .oneToNCall:
                let ids: [String] = link.split(separator: ",").map {
                    String($0).trimmingCharacters(in: .whitespacesAndNewlines)
                }
                let communicationIdentifiers: [CommunicationIdentifier] =
                ids.map { createCommunicationIdentifier(fromRawId: $0) }
                callComposite.launch(participants: communicationIdentifiers,
                                     localOptions: localOptions)
            case .roomCall:
                if envConfigSubject.displayName.isEmpty {
                    callComposite.launch(remoteOptions:
                                            RemoteOptions(for: .roomCall(roomId: link),
                                                          credential: credential),
                                         localOptions: localOptions)
                } else {
                    callComposite.launch(
                        remoteOptions: RemoteOptions(for:
                                .roomCall(roomId: link),
                                                     credential: credential,
                                                     displayName: envConfigSubject.displayName),
                        localOptions: localOptions)
                }
            }
        }
    }