From d694789d4b1fabd51c3c5c3a977f3dd5f2d1b288 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 6 Oct 2025 14:04:19 +0200 Subject: [PATCH] Trying to troubleshoot missing participant video when changing conference layout sometimes --- .../conference/model/ConferenceParticipantDeviceModel.kt | 7 +++++++ .../ui/call/conference/viewmodel/ConferenceViewModel.kt | 3 +++ 2 files changed, 10 insertions(+) diff --git a/app/src/main/java/org/linphone/ui/call/conference/model/ConferenceParticipantDeviceModel.kt b/app/src/main/java/org/linphone/ui/call/conference/model/ConferenceParticipantDeviceModel.kt index e4c584fee..2d9d937ae 100644 --- a/app/src/main/java/org/linphone/ui/call/conference/model/ConferenceParticipantDeviceModel.kt +++ b/app/src/main/java/org/linphone/ui/call/conference/model/ConferenceParticipantDeviceModel.kt @@ -192,9 +192,16 @@ class ConferenceParticipantDeviceModel @WorkerThread fun destroy() { + clearWindowId() device.removeListener(deviceListener) } + @WorkerThread + fun clearWindowId() { + Log.i("$TAG Clearing participant [${device.address.asStringUriOnly()}] device window ID") + device.nativeVideoWindowId = null + } + @UiThread fun setTextureView(view: TextureView) { Log.i( diff --git a/app/src/main/java/org/linphone/ui/call/conference/viewmodel/ConferenceViewModel.kt b/app/src/main/java/org/linphone/ui/call/conference/viewmodel/ConferenceViewModel.kt index e6b1ac40d..be868a14e 100644 --- a/app/src/main/java/org/linphone/ui/call/conference/viewmodel/ConferenceViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/conference/viewmodel/ConferenceViewModel.kt @@ -463,6 +463,9 @@ class ConferenceViewModel } } + Log.i("$TAG Clearing participant devices window IDs") + participantDevices.value.orEmpty().forEach(ConferenceParticipantDeviceModel::clearWindowId) + if (currentLayout == AUDIO_ONLY_LAYOUT) { // Previous layout was audio only, make sure video isn't sent without user consent when switching layout Log.i(