David Liu

fixing up sample app

... ... @@ -247,7 +247,8 @@ constructor(
}
fun close() {
TODO("Not yet implemented")
isConnected = false
currentWs?.close(1000, "Normal Closure")
}
interface Listener {
... ...
... ... @@ -10,11 +10,13 @@ class SubscriberTransportObserver(
override fun onIceCandidate(candidate: IceCandidate) {
Timber.v { "onIceCandidate: $candidate" }
engine.client.sendCandidate(candidate, Rtc.SignalTarget.SUBSCRIBER)
}
override fun onAddTrack(receiver: RtpReceiver, streams: Array<out MediaStream>) {
val track = receiver.track() ?: return
Timber.v { "onAddTrack: $track, ${streams.fold("") { sum, it -> "$sum, $it" }}" }
engine.listener?.onAddTrack(track, streams)
}
... ... @@ -27,6 +29,7 @@ class SubscriberTransportObserver(
}
override fun onDataChannel(channel: DataChannel) {
Timber.v { "onDataChannel" }
engine.listener?.onAddDataChannel(channel)
}
... ...
... ... @@ -78,10 +78,17 @@ class CallViewModel(
}
fun updateParticipants(room: Room) {
mutableRemoteParticipants.value = room.remoteParticipants
mutableRemoteParticipants.postValue(
room.remoteParticipants
.keys
.sortedBy { it.sid }
.mapNotNull { room.remoteParticipants[it] }
)
}
override fun onCleared() {
super.onCleared()
mutableRoom.value?.disconnect()
mutableRoom.value = null
}
}
... ...
package io.livekit.android.sample
import android.view.View
import com.github.ajalt.timberkt.Timber
import com.xwray.groupie.viewbinding.BindableItem
import com.xwray.groupie.viewbinding.GroupieViewHolder
import io.livekit.android.room.Room
... ... @@ -19,12 +20,13 @@ class ParticipantItem(
private var videoBound = false
override fun initializeViewBinding(view: View): ParticipantItemBinding {
return ParticipantItemBinding.bind(view)
val binding = ParticipantItemBinding.bind(view)
room.initVideoRenderer(binding.renderer)
return binding
}
override fun bind(viewBinding: ParticipantItemBinding, position: Int) {
viewBinding.run {
room.initVideoRenderer(renderer)
val existingTrack = getVideoTrack()
if (existingTrack != null) {
... ... @@ -58,6 +60,7 @@ class ParticipantItem(
return
}
Timber.v { "adding renderer to $videoTrack" }
videoTrack.addRenderer(viewBinding.renderer)
}
... ...