spotless: fix formatting violations in call lifecycle files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -95,11 +95,12 @@ class CallManager(
|
||||
private val _sessionEvents = MutableSharedFlow<CallSessionEvent>(extraBufferCapacity = 256)
|
||||
val sessionEvents: SharedFlow<CallSessionEvent> = _sessionEvents.asSharedFlow()
|
||||
|
||||
/**
|
||||
/*
|
||||
* Renegotiation offers from remote peers. Separate from [sessionEvents]
|
||||
* because renegotiation has its own glare-resolution logic in
|
||||
* CallSession and benefits from a dedicated collector.
|
||||
*/
|
||||
|
||||
/** Emits a session event, logging a warning if the buffer overflows. */
|
||||
private fun emitSessionEvent(event: CallSessionEvent) {
|
||||
if (!emitSessionEvent(event)) {
|
||||
|
||||
+16
-5
@@ -31,17 +31,28 @@ import com.vitorpamplona.quartz.nipACWebRtcCalls.events.CallIceCandidateEvent
|
||||
*/
|
||||
sealed interface CallSessionEvent {
|
||||
/** A peer answered our offer (or we received an answer in a group call). */
|
||||
data class AnswerReceived(val event: CallAnswerEvent) : CallSessionEvent
|
||||
data class AnswerReceived(
|
||||
val event: CallAnswerEvent,
|
||||
) : CallSessionEvent
|
||||
|
||||
/** An ICE candidate arrived from a peer. */
|
||||
data class IceCandidateReceived(val event: CallIceCandidateEvent) : CallSessionEvent
|
||||
data class IceCandidateReceived(
|
||||
val event: CallIceCandidateEvent,
|
||||
) : CallSessionEvent
|
||||
|
||||
/** A new peer joined the group call and needs callee-to-callee mesh setup. */
|
||||
data class NewPeerInGroupCall(val peerPubKey: HexKey) : CallSessionEvent
|
||||
data class NewPeerInGroupCall(
|
||||
val peerPubKey: HexKey,
|
||||
) : CallSessionEvent
|
||||
|
||||
/** A mid-call offer arrived from another callee in a group call. */
|
||||
data class MidCallOfferReceived(val peerPubKey: HexKey, val sdpOffer: String) : CallSessionEvent
|
||||
data class MidCallOfferReceived(
|
||||
val peerPubKey: HexKey,
|
||||
val sdpOffer: String,
|
||||
) : CallSessionEvent
|
||||
|
||||
/** A peer left the call (hangup/reject/timeout) but the call continues. */
|
||||
data class PeerLeft(val peerPubKey: HexKey) : CallSessionEvent
|
||||
data class PeerLeft(
|
||||
val peerPubKey: HexKey,
|
||||
) : CallSessionEvent
|
||||
}
|
||||
|
||||
+12
-2
@@ -1167,7 +1167,12 @@ class CallManagerTest {
|
||||
assertIs<CallState.Connected>(state)
|
||||
assertTrue(carol in state.peerPubKeys, "Mid-call joiner must be added to peerPubKeys")
|
||||
assertTrue(alice in state.peerPubKeys, "Existing peer must still be present")
|
||||
val forwardedPeer = events.filterIsInstance<CallSessionEvent.AnswerReceived>().firstOrNull()?.event?.pubKey
|
||||
val forwardedPeer =
|
||||
events
|
||||
.filterIsInstance<CallSessionEvent.AnswerReceived>()
|
||||
.firstOrNull()
|
||||
?.event
|
||||
?.pubKey
|
||||
assertEquals(carol, forwardedPeer, "Answer must still be emitted to CallSession")
|
||||
job.cancel()
|
||||
}
|
||||
@@ -1318,7 +1323,12 @@ class CallManagerTest {
|
||||
val bobAfterCarolAnswer = bobManager.state.value
|
||||
assertIs<CallState.Connected>(bobAfterCarolAnswer)
|
||||
assertTrue(carol in bobAfterCarolAnswer.peerPubKeys, "Bob should add Carol to his membership")
|
||||
val bobForwardedAnswer = bobEvents.filterIsInstance<CallSessionEvent.AnswerReceived>().firstOrNull()?.event?.pubKey
|
||||
val bobForwardedAnswer =
|
||||
bobEvents
|
||||
.filterIsInstance<CallSessionEvent.AnswerReceived>()
|
||||
.firstOrNull()
|
||||
?.event
|
||||
?.pubKey
|
||||
assertEquals(carol, bobForwardedAnswer, "Bob must emit Carol's answer to his CallSession")
|
||||
bobJob.cancel()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user