fun start()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/fragment/calling/controlbar/ControlBarView.kt [48:135]


    fun start(
        viewLifecycleOwner: LifecycleOwner,
        viewModel: ControlBarViewModel,
    ) {
        this.viewModel = viewModel

        setupAccessibility()
        viewLifecycleOwner.lifecycleScope.launchAll(
            {
                viewModel.audioOperationalStatus.collect {
                    updateMic(it)
                }
            },
            {
                viewModel.isCameraButtonVisible.collect {
                    cameraToggle.visibility = if (it) View.VISIBLE else View.GONE
                    updateChainStyle()
                }
            },
            {
                viewModel.isCameraButtonEnabled.collect {
                    cameraToggle.isEnabled = it
                }
            },
            {
                viewModel.cameraStatus.collect {
                    when (it) {
                        CameraOperationalStatus.ON -> {
                            cameraToggle.isSelected = true
                            cameraToggle.contentDescription =
                                context.getString(R.string.azure_communication_ui_calling_setup_view_button_video_on)
                        }

                        CameraOperationalStatus.OFF -> {
                            cameraToggle.isSelected = false
                            cameraToggle.contentDescription =
                                context.getString(R.string.azure_communication_ui_calling_setup_view_button_video_off)
                        }

                        else -> {}
                    }
                }
            },
            {
                viewModel.audioDeviceSelection.collect {
                    setAudioDeviceButtonState(it)
                }
            },
            {
                viewModel.isMicButtonEnabled.collect {
                    micToggle.isEnabled = it
                }
            },
            {
                viewModel.isMicButtonVisible.collect {
                    micToggle.visibility = if (it) View.VISIBLE else View.GONE
                    updateChainStyle()
                }
            },
            {
                viewModel.isAudioDeviceButtonEnabled.collect {
                    audioDeviceButton.isEnabled = it
                }
            },
            {
                viewModel.isAudioDeviceButtonVisible.collect {
                    audioDeviceButton.visibility = if (it) View.VISIBLE else View.GONE
                    updateChainStyle()
                }
            },
            {
                viewModel.isMoreButtonEnabled.collect {
                    moreButton.isEnabled = it
                }
            },
            {
                viewModel.isMoreButtonVisible.collect {
                    moreButton.visibility = if (it) View.VISIBLE else View.GONE
                    updateChainStyle()
                }
            },
            {
                viewModel.isVisible.collect {
                    visibility = if (it) View.VISIBLE else View.GONE
                }
            },
        )
    }