CallUiState

data class CallUiState(val phase: <Error class: unknown class> = CallPhase.Idle, val roomId: String? = null, val localCid: String? = null, val statusMessageResId: Int? = null, val errorMessageResId: Int? = null, val errorMessageText: String? = null, val isHost: Boolean = false, val participantCount: Int = 0, val callStartedAtMs: Long? = null, val localAudioEnabled: Boolean = true, val localVideoEnabled: Boolean = true, val localCameraEnabled: Boolean = true, val localContent: <Error class: unknown class>? = null, val localDisplayName: String? = null, val localAudioLevel: Float = 0.0f, val remoteParticipants: List<<Error class: unknown class>> = emptyList(), val connectionStatus: <Error class: unknown class> = ConnectionStatus.Connected, val isSignalingConnected: Boolean = false, val iceConnectionState: String = "NEW", val connectionState: String = "NEW", val signalingState: String = "STABLE", val activeTransport: String? = null, val webrtcStatsSummary: String = "", val realtimeCallStats: <Error class: unknown class>? = null, val isFrontCamera: Boolean = true, val isScreenSharing: Boolean = false, val localCameraMode: <Error class: unknown class> = LocalCameraMode.SELFIE, val availableCameraModes: List<<Error class: unknown class>> = app.serenada.core.DEFAULT_CAMERA_MODES, val isFlashAvailable: Boolean = false, val isFlashEnabled: Boolean = false, val remoteContentCid: String? = null, val remoteContentType: String? = null, val independentContentEnabled: Boolean = false, val videoMediaEnabled: Boolean = true)

Constructors

Link copied to clipboard
constructor(phase: <Error class: unknown class> = CallPhase.Idle, roomId: String? = null, localCid: String? = null, statusMessageResId: Int? = null, errorMessageResId: Int? = null, errorMessageText: String? = null, isHost: Boolean = false, participantCount: Int = 0, callStartedAtMs: Long? = null, localAudioEnabled: Boolean = true, localVideoEnabled: Boolean = true, localCameraEnabled: Boolean = true, localContent: <Error class: unknown class>? = null, localDisplayName: String? = null, localAudioLevel: Float = 0.0f, remoteParticipants: List<<Error class: unknown class>> = emptyList(), connectionStatus: <Error class: unknown class> = ConnectionStatus.Connected, isSignalingConnected: Boolean = false, iceConnectionState: String = "NEW", connectionState: String = "NEW", signalingState: String = "STABLE", activeTransport: String? = null, webrtcStatsSummary: String = "", realtimeCallStats: <Error class: unknown class>? = null, isFrontCamera: Boolean = true, isScreenSharing: Boolean = false, localCameraMode: <Error class: unknown class> = LocalCameraMode.SELFIE, availableCameraModes: List<<Error class: unknown class>> = app.serenada.core.DEFAULT_CAMERA_MODES, isFlashAvailable: Boolean = false, isFlashEnabled: Boolean = false, remoteContentCid: String? = null, remoteContentType: String? = null, independentContentEnabled: Boolean = false, videoMediaEnabled: Boolean = true)

Properties

Link copied to clipboard
val activeTransport: String? = null
Link copied to clipboard
val availableCameraModes: List<<Error class: unknown class>>
Link copied to clipboard
val callStartedAtMs: Long? = null
Link copied to clipboard
Link copied to clipboard
val connectionStatus: <Error class: unknown class>
Link copied to clipboard
val errorMessageResId: Int? = null
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Whether the local build negotiates an independent content (screen share) video track (app.serenada.core.SerenadaConfig.enableIndependentContentVideo). Default false ⇒ no content track can exist ⇒ the UI treats every share as the legacy single-video-as-content path (byte-identical to today).

Link copied to clipboard
Link copied to clipboard
val isFlashEnabled: Boolean = false
Link copied to clipboard
Link copied to clipboard
val isHost: Boolean = false
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Camera video specifically. In the flag-off build this mirrors localVideoEnabled; in independent mode it tracks camera-active separately from screen share so the owner camera tile/PIP can render alongside content.

Link copied to clipboard
val localCameraMode: <Error class: unknown class>
Link copied to clipboard
val localCid: String? = null
Link copied to clipboard
val localContent: <Error class: unknown class>? = null

Precise local content (screen share) presentation state. Null when the local user is not sharing content. Drives content tiles WITHOUT inferring from localCameraMode / isScreenSharing.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val phase: <Error class: unknown class>
Link copied to clipboard
val realtimeCallStats: <Error class: unknown class>? = null
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val remoteParticipants: List<<Error class: unknown class>>
Link copied to clipboard
Link copied to clipboard
val roomId: String? = null
Link copied to clipboard
Link copied to clipboard
val statusMessageResId: Int? = null
Link copied to clipboard

Whether the local user can receive any video media at all (app.serenada.core.SerenadaConfig.videoMediaEnabled). Default true. When false (PSTN / audio-only) the UI suppresses ALL content UI even if room state reports another participant sharing.

Link copied to clipboard