fun bindAttendee()

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
        }
    }