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
}
},
)
}