in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/manager/UpdatableOptionsManager.kt [22:137]
fun start() {
configuration.callScreenOptions?.headerViewData?.run {
setTitleChangedEventHandler {
store.dispatch(CallScreenInfoHeaderAction.UpdateTitle(it))
}
setSubtitleChangedEventHandler {
store.dispatch(CallScreenInfoHeaderAction.UpdateSubtitle(it))
}
/* <CALL_START_TIME>
setShowCallDurationChangedEventHandler {
store.dispatch(CallScreenInfoHeaderAction.UpdateShowCallDuration(it ?: true))
}
</CALL_START_TIME> */
}
configuration.callScreenOptions?.controlBarOptions?.run {
cameraButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenCameraButtonIsEnabledUpdated(it))
}
cameraButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenCameraButtonIsVisibleUpdated(it))
}
microphoneButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenMicButtonIsEnabledUpdated(it))
}
microphoneButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenMicButtonIsVisibleUpdated(it))
}
audioDeviceButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenAudioDeviceButtonIsEnabledUpdated(it))
}
audioDeviceButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenAudioDeviceButtonIsVisibleUpdated(it))
}
liveCaptionsButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenLiveCaptionsButtonIsEnabledUpdated(it))
}
liveCaptionsButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenLiveCaptionsButtonIsVisibleUpdated(it))
}
liveCaptionsToggleButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenLiveCaptionsToggleButtonIsEnabledUpdated(it))
}
liveCaptionsToggleButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenLiveCaptionsToggleButtonIsVisibleUpdated(it))
}
spokenLanguageButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenSpokenLanguageButtonIsEnabledUpdated(it))
}
spokenLanguageButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenSpokenLanguageButtonIsVisibleUpdated(it))
}
captionsLanguageButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenCaptionsLanguageButtonIsEnabledUpdated(it))
}
captionsLanguageButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenCaptionsLanguageButtonIsVisibleUpdated(it))
}
shareDiagnosticsButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenShareDiagnosticsButtonIsEnabledUpdated(it))
}
shareDiagnosticsButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenShareDiagnosticsButtonIsVisibleUpdated(it))
}
reportIssueButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenReportIssueButtonIsEnabledUpdated(it))
}
reportIssueButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.CallScreenReportIssueButtonIsVisibleUpdated(it))
}
customButtons?.forEach {
it.setEnabledChangedEventHandler { isEnabled ->
store.dispatch(ButtonViewDataAction.CallScreenCustomButtonIsEnabledUpdated(it.id, isEnabled))
}
it.setVisibleChangedEventHandler { isVisible ->
store.dispatch(ButtonViewDataAction.CallScreenCustomButtonIsVisibleUpdated(it.id, isVisible))
}
it.setDrawableIdChangedEventHandler { drawableId ->
store.dispatch(ButtonViewDataAction.CallScreenCustomButtonIconUpdated(it.id, drawableId))
}
}
}
configuration.setupScreenOptions?.run {
cameraButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenCameraButtonIsEnabledUpdated(it))
}
cameraButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenCameraButtonIsVisibleUpdated(it))
}
microphoneButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenMicButtonIsEnabledUpdated(it))
}
microphoneButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenMicButtonIsVisibleUpdated(it))
}
audioDeviceButton?.setEnabledChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenAudioDeviceButtonIsEnabledUpdated(it))
}
audioDeviceButton?.setVisibleChangedEventHandler {
store.dispatch(ButtonViewDataAction.SetupScreenAudioDeviceButtonIsVisibleUpdated(it))
}
}
configuration.callScreenOptions?.headerViewData?.customButtons?.forEach {
it.setEnabledChangedEventHandler { isEnabled ->
store.dispatch(ButtonViewDataAction.CallScreenHeaderCustomButtonIsEnabledUpdated(it.id, isEnabled))
}
it.setVisibleChangedEventHandler { isVisible ->
store.dispatch(ButtonViewDataAction.CallScreenHeaderCustomButtonIsVisibleUpdated(it.id, isVisible))
}
it.setDrawableIdChangedEventHandler { drawableId ->
store.dispatch(ButtonViewDataAction.CallScreenHeaderCustomButtonIconUpdated(it.id, drawableId))
}
}
}