davidliu
Committed by GitHub

Add connected room event (#290)

... ... @@ -18,7 +18,11 @@ package io.livekit.android.events
import io.livekit.android.e2ee.E2EEState
import io.livekit.android.room.Room
import io.livekit.android.room.participant.*
import io.livekit.android.room.participant.ConnectionQuality
import io.livekit.android.room.participant.LocalParticipant
import io.livekit.android.room.participant.Participant
import io.livekit.android.room.participant.ParticipantPermission
import io.livekit.android.room.participant.RemoteParticipant
import io.livekit.android.room.track.LocalTrackPublication
import io.livekit.android.room.track.RemoteTrackPublication
import io.livekit.android.room.track.Track
... ... @@ -26,6 +30,12 @@ import io.livekit.android.room.track.TrackPublication
import livekit.LivekitModels
sealed class RoomEvent(val room: Room) : Event() {
/**
* Connected to Room
*/
class Connected(room: Room) : RoomEvent(room)
/**
* A network change has been detected and LiveKit attempts to reconnect to the room
* When reconnect attempts succeed, the room state will be kept, including tracks that are subscribed/published
... ...
... ... @@ -279,7 +279,6 @@ constructor(
}
engine.join(url, token, options, roomOptions)
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkRequest = NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
... ... @@ -669,6 +668,7 @@ constructor(
*/
override fun onEngineConnected() {
state = State.CONNECTED
eventBus.postEvent(RoomEvent.Connected(this), coroutineScope)
}
/**
... ...
... ... @@ -60,11 +60,17 @@ class RoomMockE2ETest : MockE2ETest() {
}
@Test
fun connectNoEvents() = runTest {
fun connectEvent() = runTest {
val collector = EventCollector(room.events, coroutineRule.scope)
connect()
val events = collector.stopCollecting()
assertEquals(emptyList<RoomEvent>(), events)
assertIsClassList(
listOf(
RoomEvent.Connected::class.java,
),
events,
)
}
@Test
... ... @@ -80,7 +86,12 @@ class RoomMockE2ETest : MockE2ETest() {
val collector = EventCollector(room.events, coroutineRule.scope)
connect(joinResponse)
val events = collector.stopCollecting()
assertEquals(emptyList<RoomEvent>(), events)
assertIsClassList(
listOf(
RoomEvent.Connected::class.java,
),
events,
)
}
@Test
... ...