Skip to content

Commit f12839f

Browse files
put ensurePublisherConnected into a try {} catch {}
1 parent d0f626d commit f12839f

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

‎livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,11 @@ internal constructor(
694694

695695
@CheckResult
696696
internal suspend fun sendData(dataPacket: LivekitModels.DataPacket): Result<Unit> {
697-
ensurePublisherConnected(dataPacket.kind)
697+
try {
698+
ensurePublisherConnected(dataPacket.kind)
699+
} catch (e: Exception) {
700+
return Result.failure(e)
701+
}
698702

699703
fun sendDataImpl(dataPacket: LivekitModels.DataPacket): Result<Unit> {
700704
try {

‎livekit-android-test/src/test/java/io/livekit/android/room/participant/LocalParticipantMockE2ETest.kt‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import io.livekit.android.events.ParticipantEvent
2626
import io.livekit.android.events.RoomEvent
2727
import io.livekit.android.room.DefaultsManager
2828
import io.livekit.android.room.RTCEngine
29+
import io.livekit.android.room.RoomException
2930
import io.livekit.android.room.track.LocalVideoTrack
3031
import io.livekit.android.room.track.LocalVideoTrackOptions
3132
import io.livekit.android.room.track.ScreenSharePresets
@@ -879,4 +880,19 @@ class LocalParticipantMockE2ETest : MockE2ETest() {
879880

880881
assertTrue(headerPacket.user.payload.toByteArray().contentEquals(data))
881882
}
883+
884+
@Test
885+
fun publishDataReturnsFailureWhenPublisherChannelIsMissing() = runTest {
886+
connect()
887+
888+
val rtcEngine = component.rtcEngine()
889+
val reliableDataChannelField = RTCEngine::class.java.getDeclaredField("reliableDataChannel")
890+
reliableDataChannelField.isAccessible = true
891+
reliableDataChannelField.set(rtcEngine, null)
892+
893+
val result = room.localParticipant.publishData("hello".toByteArray())
894+
895+
assertTrue(result.isFailure)
896+
assertTrue(result.exceptionOrNull() is RoomException.ConnectException)
897+
}
882898
}

0 commit comments

Comments
 (0)