davidliu

clean up reconnect function in sample callview model

@@ -100,7 +100,7 @@ class CallViewModel( @@ -100,7 +100,7 @@ class CallViewModel(
100 mutableCameraEnabled.postValue(localParticipant.isCameraEnabled()) 100 mutableCameraEnabled.postValue(localParticipant.isCameraEnabled())
101 mutableRoom.value = room 101 mutableRoom.value = room
102 102
103 - mutablePrimarySpeaker.value = room.remoteParticipants.values.firstOrNull() ?: localParticipant 103 + handlePrimarySpeaker(emptyList(), emptyList(), room)
104 104
105 launch { 105 launch {
106 combine(participants, activeSpeakers) { participants, speakers -> participants to speakers } 106 combine(participants, activeSpeakers) { participants, speakers -> participants to speakers }
@@ -257,13 +257,17 @@ class CallViewModel( @@ -257,13 +257,17 @@ class CallViewModel(
257 } 257 }
258 258
259 fun reconnect() { 259 fun reconnect() {
260 - room.value?.disconnect()  
261 - 260 + Timber.e { "Reconnecting." }
  261 + val room = mutableRoom.value ?: return
  262 + mutableRoom.value = null
  263 + mutablePrimarySpeaker.value = null
  264 + room.disconnect()
262 viewModelScope.launch { 265 viewModelScope.launch {
263 - room.value?.connect( 266 + room.connect(
264 url, 267 url,
265 token 268 token
266 ) 269 )
  270 + mutableRoom.value = room
267 } 271 }
268 } 272 }
269 } 273 }