fun update()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/fragment/calling/localuser/LocalParticipantViewModel.kt [50:89]


    fun update(
        displayName: String?,
        audioOperationalStatus: AudioOperationalStatus,
        videoStreamID: String?,
        numberOfRemoteParticipants: Int,
        callingState: CallingStatus,
        cameraDeviceSelectionStatus: CameraDeviceSelectionStatus,
        camerasCount: Int,
        pipStatus: VisibilityStatus,
        avMode: CallCompositeAudioVideoMode,
        isOverlayDisplayedOverGrid: Boolean,
    ) {
        val viewMode = getLocalParticipantViewMode(numberOfRemoteParticipants)
        val displayVideo = shouldDisplayVideo(videoStreamID)
        val displayFullScreenAvatar =
            shouldDisplayFullScreenAvatar(displayVideo, viewMode, callingState)

        videoStatusFlow.value = VideoModel(displayVideo, videoStreamID, viewMode)
        displayNameStateFlow.value = displayName
        localUserMutedStateFlow.value = audioOperationalStatus == AudioOperationalStatus.OFF
        displayFullScreenAvatarFlow.value = displayFullScreenAvatar
        displaySwitchCameraButtonFlow.value =
            displayVideo &&
            viewMode == LocalParticipantViewMode.FULL_SCREEN && camerasCount > 1 &&
            pipStatus == VisibilityStatus.VISIBLE
        displayPipSwitchCameraButtonFlow.value =
            displayVideo &&
            viewMode == LocalParticipantViewMode.SELFIE_PIP &&
            camerasCount > 1 &&
            pipStatus == VisibilityStatus.VISIBLE

        enableCameraSwitchFlow.value =
            cameraDeviceSelectionStatus != CameraDeviceSelectionStatus.SWITCHING &&
            callingState != CallingStatus.LOCAL_HOLD
        cameraDeviceSelectionFlow.value = cameraDeviceSelectionStatus
        numberOfRemoteParticipantsFlow.value = numberOfRemoteParticipants

        isVisibleFlow.value = isVisible(displayVideo, pipStatus, displayFullScreenAvatar, avMode)
        isOverlayDisplayedFlow.value = isOverlayDisplayedOverGrid
    }