davidliu

connection quality

@@ -5,6 +5,7 @@ import com.github.ajalt.timberkt.Timber @@ -5,6 +5,7 @@ import com.github.ajalt.timberkt.Timber
5 import com.xwray.groupie.viewbinding.BindableItem 5 import com.xwray.groupie.viewbinding.BindableItem
6 import com.xwray.groupie.viewbinding.GroupieViewHolder 6 import com.xwray.groupie.viewbinding.GroupieViewHolder
7 import io.livekit.android.room.Room 7 import io.livekit.android.room.Room
  8 +import io.livekit.android.room.participant.ConnectionQuality
8 import io.livekit.android.room.participant.Participant 9 import io.livekit.android.room.participant.Participant
9 import io.livekit.android.room.participant.ParticipantListener 10 import io.livekit.android.room.participant.ParticipantListener
10 import io.livekit.android.room.participant.RemoteParticipant 11 import io.livekit.android.room.participant.RemoteParticipant
@@ -59,6 +60,13 @@ class ParticipantItem( @@ -59,6 +60,13 @@ class ParticipantItem(
59 viewBinding.muteIndicator.visibility = if (muted) View.VISIBLE else View.INVISIBLE 60 viewBinding.muteIndicator.visibility = if (muted) View.VISIBLE else View.INVISIBLE
60 } 61 }
61 } 62 }
  63 + coroutineScope?.launch {
  64 + participant::connectionQuality.flow
  65 + .collect { quality ->
  66 + viewBinding.connectionQuality.visibility =
  67 + if (quality == ConnectionQuality.POOR) View.VISIBLE else View.INVISIBLE
  68 + }
  69 + }
62 participant.listener = object : ParticipantListener { 70 participant.listener = object : ParticipantListener {
63 override fun onTrackSubscribed( 71 override fun onTrackSubscribed(
64 track: Track, 72 track: Track,