fun onStart()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/manager/AudioSessionManager.kt [90:114]


    fun onStart(activity: Activity) {
        if (activity !is LifecycleOwner) {
            throw CallCompositeException("Activity must be a LifecycleOwner", IllegalArgumentException())
        }
        (activity as LifecycleOwner).lifecycle.coroutineScope.launch {
            // On first launch we need to init the redux-state, check Bluetooth and Headset status
            store.getStateFlow().collect {
                if (previousAudioDeviceSelectionStatus == null ||
                    previousAudioDeviceSelectionStatus != it.localParticipantState.audioState.device
                ) {
                    onAudioDeviceStateChange(it.localParticipantState.audioState.device)
                }

                // After permission is granted, double check bluetooth status
                if (it.permissionState.audioPermissionState == PermissionStatus.GRANTED &&
                    previousPermissionState != PermissionStatus.GRANTED
                ) {
                    updateBluetoothStatus()
                }

                previousAudioDeviceSelectionStatus = it.localParticipantState.audioState.device
                previousPermissionState = it.permissionState.audioPermissionState
            }
        }
    }