Skip to content

Commit 902b844

Browse files
authored
Add passing in e2ee options to rememberSession (#77)
1 parent 1373401 commit 902b844

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

.changeset/polite-carrots-run.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"components-android": minor
3+
---
4+
5+
Add passing in end-to-end encryption options to rememberSession through `SessionOptions`

livekit-compose-components/src/main/java/io/livekit/android/compose/state/RememberSession.kt

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2025 LiveKit, Inc.
2+
* Copyright 2025-2026 LiveKit, Inc.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -27,9 +27,11 @@ import androidx.compose.runtime.produceState
2727
import androidx.compose.runtime.remember
2828
import androidx.compose.runtime.rememberUpdatedState
2929
import io.livekit.android.ConnectOptions
30+
import io.livekit.android.RoomOptions
3031
import io.livekit.android.annotations.Beta
3132
import io.livekit.android.compose.local.rememberLiveKitRoom
3233
import io.livekit.android.compose.types.AgentFailure
34+
import io.livekit.android.e2ee.E2EEOptions
3335
import io.livekit.android.room.ConnectionState
3436
import io.livekit.android.room.Room
3537
import io.livekit.android.room.participant.AudioTrackPublishOptions
@@ -76,7 +78,14 @@ data class SessionOptions(
7678
*
7779
* These options will be ignored for a [FixedTokenSource].
7880
*/
79-
val tokenRequestOptions: TokenRequestOptions = TokenRequestOptions()
81+
val tokenRequestOptions: TokenRequestOptions = TokenRequestOptions(),
82+
83+
/**
84+
* End-to-end encryption options for the [Room] created when [room] is null.
85+
*
86+
* Ignored when [room] is non-null; configure E2EE on that [Room] yourself if needed.
87+
*/
88+
val e2eeOptions: E2EEOptions? = null,
8089
)
8190

8291
/**
@@ -220,7 +229,16 @@ internal class SessionImpl(
220229
@Beta
221230
@Composable
222231
fun rememberSession(tokenSource: TokenSource, options: SessionOptions = SessionOptions()): Session {
223-
val room = rememberLiveKitRoom(passedRoom = options.room, connect = false)
232+
val roomOptions = if (options.room == null && options.e2eeOptions != null) {
233+
RoomOptions(e2eeOptions = options.e2eeOptions)
234+
} else {
235+
null
236+
}
237+
val room = rememberLiveKitRoom(
238+
passedRoom = options.room,
239+
connect = false,
240+
roomOptions = roomOptions,
241+
)
224242
val connectionState = produceState(ConnectionState.DISCONNECTED, room) {
225243
room::state.flow
226244
.map { state ->

0 commit comments

Comments
 (0)