in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/fragment/calling/controlbar/ControlBarViewModel.kt [67:132]
fun init(
permissionState: PermissionState,
cameraState: CameraState,
audioState: AudioState,
callState: CallingState,
requestCallEndCallback: () -> Unit,
openAudioDeviceSelectionMenuCallback: () -> Unit,
visibilityState: VisibilityState,
audioVideoMode: CallCompositeAudioVideoMode,
capabilities: Set<ParticipantCapabilityType>,
buttonViewDataState: ButtonState,
controlBarOptions: CallCompositeCallScreenControlBarOptions?,
deviceConfigurationState: DeviceConfigurationState,
) {
isVisibleStateFlow = MutableStateFlow(shouldBeVisible(visibilityState, deviceConfigurationState))
isCameraButtonVisibleFlow = MutableStateFlow(
shouldCameraBeVisibility(
audioVideoMode,
buttonViewDataState.callScreenCameraButtonState,
)
)
isCameraButtonEnabledFlow = MutableStateFlow(
shouldCameraBeEnabled(
permissionState,
callState.callingStatus,
cameraState.operation,
capabilities,
buttonViewDataState.callScreenCameraButtonState,
)
)
cameraStatusFlow = MutableStateFlow(cameraState.operation)
audioOperationalStatusStateFlow = MutableStateFlow(audioState.operation)
audioDeviceSelectionStatusStateFlow = MutableStateFlow(audioState.device)
isMicButtonEnabledFlow = MutableStateFlow(
shouldMicBeEnabled(
audioState,
callState.callingStatus,
capabilities,
buttonViewDataState.callScreenMicButtonState,
)
)
isAudioDeviceButtonEnabledFlow = MutableStateFlow(
shouldAudioDeviceButtonBeEnable(
callState.callingStatus,
buttonViewDataState.callScreenAudioDeviceButtonState,
)
)
isMicButtonVisibleFlow = MutableStateFlow(shouldMicBeVisible(buttonViewDataState.callScreenMicButtonState))
isAudioDeviceButtonVisibleFlow = MutableStateFlow(shouldAudioDeviceBeVisible(buttonViewDataState.callScreenMicButtonState))
isMoreButtonVisibleFlow = MutableStateFlow(shouldMoreButtonBeVisible(buttonViewDataState))
isMoreButtonEnabledFlow = MutableStateFlow(shouldMoreButtonBeEnabled(callState.callingStatus))
requestCallEnd = requestCallEndCallback
openAudioDeviceSelectionMenu = openAudioDeviceSelectionMenuCallback
this.controlBarOptions = controlBarOptions
}