From 9d3e3f1bc8c3c7494f9c19c44ccf43cdda12ed5c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 3 Feb 2026 14:29:51 +0100 Subject: [PATCH] Try to prevent race condition when call is ending with call quality icon update --- .../ui/call/viewmodel/CurrentCallViewModel.kt | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt index 7ebce0ddc..b433ca978 100644 --- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt @@ -1341,19 +1341,22 @@ class CurrentCallViewModel delay(1000) coreContext.postOnCoreThread { if (::currentCall.isInitialized) { - val quality = currentCall.currentQuality - val icon = when { - quality >= 4 -> R.drawable.cell_signal_full - quality >= 3 -> R.drawable.cell_signal_high - quality >= 2 -> R.drawable.cell_signal_medium - quality >= 1 -> R.drawable.cell_signal_low - else -> R.drawable.cell_signal_none - } - qualityValue.postValue(quality) - qualityIcon.postValue(icon) - } + val state = currentCall.state + if (!LinphoneUtils.isCallEnding(state, true)) { + val quality = currentCall.currentQuality + val icon = when { + quality >= 4 -> R.drawable.cell_signal_full + quality >= 3 -> R.drawable.cell_signal_high + quality >= 2 -> R.drawable.cell_signal_medium + quality >= 1 -> R.drawable.cell_signal_low + else -> R.drawable.cell_signal_none + } + qualityValue.postValue(quality) + qualityIcon.postValue(icon) - updateCallQualityIcon() + updateCallQualityIcon() + } + } } } }