fun launch()

in azure-communication-ui/demo-app/src/calling/java/com/azure/android/communication/ui/callingcompositedemoapp/CallCompositeManager.kt [80:147]


    fun launch(
        applicationContext: Context,
        identity: String,
        acsToken: String,
        displayName: String,
        groupId: UUID?,
        roomId: String?,
        meetingLink: String?,
        meetingId: String?,
        meetingPasscode: String?,
        participantMris: String?,
    ) {
        if (SettingsFeatures.getDisplayDismissButtonOption()) {
            DismissCompositeButtonView.get(applicationContext).show(this)
        } else {
            DismissCompositeButtonView.get(applicationContext).hide()
        }

        createCallCompositeAndSubscribeToEvents(
            applicationContext,
            acsToken,
            displayName,
            identity,
        )

        val localOptions = getLocalOptions(applicationContext)

        val participants = participantMris?.split(",")
        if (!participants.isNullOrEmpty()) {
            if (localOptions == null) {
                callComposite?.launch(applicationContext, participants.map { CommunicationIdentifier.fromRawId(it) })
            } else {
                callComposite?.launch(applicationContext, participants.map { CommunicationIdentifier.fromRawId(it) }, localOptions)
            }
        } else {
            val useDeprecatedLaunch = SettingsFeatures.getUseDeprecatedLaunch()
            val remoteOptions = getRemoteOptions(
                acsToken,
                groupId,
                meetingLink,
                meetingId,
                meetingPasscode,
                roomId,
                displayName,
            )
            val locator = getLocator(
                groupId,
                meetingLink,
                meetingId,
                meetingPasscode,
                roomId,
            )

            if (localOptions == null) {
                if (useDeprecatedLaunch) {
                    callComposite?.launch(applicationContext, remoteOptions)
                } else {
                    callComposite?.launch(applicationContext, locator)
                }
            } else {
                if (useDeprecatedLaunch) {
                    callComposite?.launch(applicationContext, remoteOptions, localOptions)
                } else {
                    callComposite?.launch(applicationContext, locator, localOptions)
                }
            }
        }
    }