Committed by
GitHub
Remove RoomOptions from Room.connect (#346)
This was causing confusion in users who expected it to overwrite the existing room options
正在显示
5 个修改的文件
包含
20 行增加
和
7 行删除
| @@ -105,6 +105,7 @@ class LiveKit { | @@ -105,6 +105,7 @@ class LiveKit { | ||
| 105 | } | 105 | } |
| 106 | room.adaptiveStream = options.adaptiveStream | 106 | room.adaptiveStream = options.adaptiveStream |
| 107 | room.dynacast = options.dynacast | 107 | room.dynacast = options.dynacast |
| 108 | + room.e2eeOptions = options.e2eeOptions | ||
| 108 | 109 | ||
| 109 | return room | 110 | return room |
| 110 | } | 111 | } |
| @@ -35,7 +35,7 @@ data class RoomOptions( | @@ -35,7 +35,7 @@ data class RoomOptions( | ||
| 35 | val dynacast: Boolean = false, | 35 | val dynacast: Boolean = false, |
| 36 | 36 | ||
| 37 | /** | 37 | /** |
| 38 | - * Options for end-to-end encryption. | 38 | + * @see [Room.e2eeOptions] |
| 39 | */ | 39 | */ |
| 40 | val e2eeOptions: E2EEOptions? = null, | 40 | val e2eeOptions: E2EEOptions? = null, |
| 41 | 41 |
| @@ -33,6 +33,7 @@ import io.livekit.android.Version | @@ -33,6 +33,7 @@ import io.livekit.android.Version | ||
| 33 | import io.livekit.android.audio.AudioHandler | 33 | import io.livekit.android.audio.AudioHandler |
| 34 | import io.livekit.android.dagger.InjectionNames | 34 | import io.livekit.android.dagger.InjectionNames |
| 35 | import io.livekit.android.e2ee.E2EEManager | 35 | import io.livekit.android.e2ee.E2EEManager |
| 36 | +import io.livekit.android.e2ee.E2EEOptions | ||
| 36 | import io.livekit.android.events.* | 37 | import io.livekit.android.events.* |
| 37 | import io.livekit.android.memory.CloseableManager | 38 | import io.livekit.android.memory.CloseableManager |
| 38 | import io.livekit.android.renderer.TextureViewRenderer | 39 | import io.livekit.android.renderer.TextureViewRenderer |
| @@ -162,6 +163,13 @@ constructor( | @@ -162,6 +163,13 @@ constructor( | ||
| 162 | } | 163 | } |
| 163 | 164 | ||
| 164 | /** | 165 | /** |
| 166 | + * Options for end-to-end encryption. Must be setup prior to [connect]. | ||
| 167 | + * | ||
| 168 | + * If null, e2ee will be disabled. | ||
| 169 | + */ | ||
| 170 | + var e2eeOptions: E2EEOptions? = null | ||
| 171 | + | ||
| 172 | + /** | ||
| 165 | * Default options to use when creating an audio track. | 173 | * Default options to use when creating an audio track. |
| 166 | */ | 174 | */ |
| 167 | var audioTrackCaptureDefaults: LocalAudioTrackOptions by defaultsManager::audioTrackCaptureDefaults | 175 | var audioTrackCaptureDefaults: LocalAudioTrackOptions by defaultsManager::audioTrackCaptureDefaults |
| @@ -210,15 +218,17 @@ constructor( | @@ -210,15 +218,17 @@ constructor( | ||
| 210 | videoTrackCaptureDefaults = videoTrackCaptureDefaults, | 218 | videoTrackCaptureDefaults = videoTrackCaptureDefaults, |
| 211 | audioTrackPublishDefaults = audioTrackPublishDefaults, | 219 | audioTrackPublishDefaults = audioTrackPublishDefaults, |
| 212 | videoTrackPublishDefaults = videoTrackPublishDefaults, | 220 | videoTrackPublishDefaults = videoTrackPublishDefaults, |
| 213 | - e2eeOptions = null, | 221 | + e2eeOptions = e2eeOptions, |
| 214 | ) | 222 | ) |
| 215 | 223 | ||
| 216 | - suspend fun connect(url: String, token: String, options: ConnectOptions = ConnectOptions(), roomOptions: RoomOptions = getCurrentRoomOptions()) { | 224 | + suspend fun connect(url: String, token: String, options: ConnectOptions = ConnectOptions()) { |
| 217 | if (this::coroutineScope.isInitialized) { | 225 | if (this::coroutineScope.isInitialized) { |
| 218 | coroutineScope.cancel() | 226 | coroutineScope.cancel() |
| 219 | } | 227 | } |
| 220 | coroutineScope = CoroutineScope(defaultDispatcher + SupervisorJob()) | 228 | coroutineScope = CoroutineScope(defaultDispatcher + SupervisorJob()) |
| 221 | 229 | ||
| 230 | + val roomOptions = getCurrentRoomOptions() | ||
| 231 | + | ||
| 222 | // Setup local participant. | 232 | // Setup local participant. |
| 223 | localParticipant.reinitialize() | 233 | localParticipant.reinitialize() |
| 224 | coroutineScope.launch { | 234 | coroutineScope.launch { |
| @@ -71,9 +71,11 @@ class RoomTest { | @@ -71,9 +71,11 @@ class RoomTest { | ||
| 71 | override fun create(dynacast: Boolean): LocalParticipant { | 71 | override fun create(dynacast: Boolean): LocalParticipant { |
| 72 | return Mockito.mock(LocalParticipant::class.java) | 72 | return Mockito.mock(LocalParticipant::class.java) |
| 73 | .apply { | 73 | .apply { |
| 74 | - whenever(this.events).thenReturn(object : EventListenable<ParticipantEvent> { | ||
| 75 | - override val events: SharedFlow<ParticipantEvent> = MutableSharedFlow() | ||
| 76 | - }) | 74 | + whenever(this.events).thenReturn( |
| 75 | + object : EventListenable<ParticipantEvent> { | ||
| 76 | + override val events: SharedFlow<ParticipantEvent> = MutableSharedFlow() | ||
| 77 | + }, | ||
| 78 | + ) | ||
| 77 | } | 79 | } |
| 78 | } | 80 | } |
| 79 | } | 81 | } |
| @@ -178,10 +178,10 @@ class CallViewModel( | @@ -178,10 +178,10 @@ class CallViewModel( | ||
| 178 | 178 | ||
| 179 | private suspend fun connectToRoom() { | 179 | private suspend fun connectToRoom() { |
| 180 | try { | 180 | try { |
| 181 | + room.e2eeOptions = getE2EEOptions() | ||
| 181 | room.connect( | 182 | room.connect( |
| 182 | url = url, | 183 | url = url, |
| 183 | token = token, | 184 | token = token, |
| 184 | - roomOptions = RoomOptions(e2eeOptions = getE2EEOptions()), | ||
| 185 | ) | 185 | ) |
| 186 | 186 | ||
| 187 | // Create and publish audio/video tracks | 187 | // Create and publish audio/video tracks |
-
请 注册 或 登录 后发表评论