fun init()

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
    }