in app/src/main/java/com/amazonaws/services/chime/sdkdemo/adapter/RosterAdapter.kt [42:88]
fun bindAttendee(attendee: RosterAttendee) {
val attendeeName = attendee.attendeeName
binding.attendeeName.text = attendeeName
binding.attendeeName.contentDescription = attendeeName
binding.activeSpeakerIndicator.visibility = if (attendee.isActiveSpeaker) View.VISIBLE else View.INVISIBLE
binding.activeSpeakerIndicator.contentDescription = if (attendee.isActiveSpeaker) "${attendee.attendeeName} Active" else ""
if (attendee.attendeeStatus == AttendeeStatus.Joined) {
if (attendee.signalStrength == SignalStrength.None ||
attendee.signalStrength == SignalStrength.Low
) {
val drawable = if (attendee.volumeLevel == VolumeLevel.Muted) {
R.drawable.ic_microphone_poor_connectivity_dissabled
} else {
R.drawable.ic_microphone_poor_connectivity
}
binding.attendeeVolume.setImageResource(drawable)
binding.attendeeVolume.contentDescription = "$attendeeName Signal Strength Poor"
} else {
when (attendee.volumeLevel) {
VolumeLevel.Muted -> {
binding.attendeeVolume.setImageResource(R.drawable.ic_microphone_disabled)
binding.attendeeVolume.contentDescription = "$attendeeName Muted"
}
VolumeLevel.NotSpeaking -> {
binding.attendeeVolume.setImageResource(R.drawable.ic_microphone_enabled)
binding.attendeeVolume.contentDescription = "$attendeeName Not Speaking"
}
VolumeLevel.Low -> {
binding.attendeeVolume.setImageResource(R.drawable.ic_microphone_audio_1)
binding.attendeeVolume.contentDescription = "$attendeeName Speaking"
}
VolumeLevel.Medium -> {
binding.attendeeVolume.setImageResource(R.drawable.ic_microphone_audio_2)
binding.attendeeVolume.contentDescription = "$attendeeName Speaking"
}
VolumeLevel.High -> {
binding.attendeeVolume.setImageResource(R.drawable.ic_microphone_audio_3)
binding.attendeeVolume.contentDescription = "$attendeeName Speaking"
}
}
}
binding.attendeeVolume.visibility = View.VISIBLE
} else {
binding.attendeeVolume.visibility = View.GONE
}
}