diff --git a/app/src/main/java/org/linphone/activities/main/conference/viewmodels/ConferenceWaitingRoomViewModel.kt b/app/src/main/java/org/linphone/activities/main/conference/viewmodels/ConferenceWaitingRoomViewModel.kt index c3bc4fd8a..ba194278d 100644 --- a/app/src/main/java/org/linphone/activities/main/conference/viewmodels/ConferenceWaitingRoomViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/conference/viewmodels/ConferenceWaitingRoomViewModel.kt @@ -236,13 +236,6 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() { ) val areWeListener = myself.role == Participant.Role.Listener isConferenceBroadcastWithListenerRole.value = areWeListener - - if (areWeListener) { - callParams.isVideoEnabled = false - callParams.videoDirection = MediaDirection.Inactive - updateVideoState() - updateLayout() - } } else { Log.e( "[Conference Waiting Room] Failed to find ourselves in participants info" diff --git a/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt b/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt index 3153ed771..b71ef274f 100644 --- a/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt +++ b/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt @@ -107,7 +107,7 @@ class ConferenceViewModel : ViewModel() { Log.i( "[Conference] Participant device added: ${participantDevice.address.asStringUriOnly()}" ) - addParticipantDevice(participantDevice) + addParticipantDevice(conference, participantDevice) if (conferenceParticipantDevices.value.orEmpty().size == 2) { secondParticipantJoinedEvent.value = Event(true) @@ -628,7 +628,7 @@ class ConferenceViewModel : ViewModel() { moreThanTwoParticipants.value = devices.size > 2 } - private fun addParticipantDevice(device: ParticipantDevice) { + private fun addParticipantDevice(conference: Conference, device: ParticipantDevice) { val devices = arrayListOf() devices.addAll(conferenceParticipantDevices.value.orEmpty()) @@ -645,6 +645,22 @@ class ConferenceViewModel : ViewModel() { Log.i( "[Conference] New participant device found: ${device.name} (${device.address.asStringUriOnly()})" ) + + val conferenceInfo = conference.core.findConferenceInformationFromUri( + conference.conferenceAddress + ) + val info = conferenceInfo?.participantInfos?.find { + it.address.weakEqual(device.address) + } + if (info != null) { + Log.i("[Conference] New participant role is [${info.role.name}]") + val listener = + info.role == Participant.Role.Listener || info.role == Participant.Role.Unknown + if (listener) { + return + } + } + val deviceData = ConferenceParticipantDeviceData(device, false) devices.add(deviceData)