Try to prevent race condition when call is ending with call quality icon update

This commit is contained in:
Sylvain Berfini 2026-02-03 14:29:51 +01:00
parent c9fdbf6f9d
commit 9d3e3f1bc8

View file

@ -1341,19 +1341,22 @@ class CurrentCallViewModel
delay(1000) delay(1000)
coreContext.postOnCoreThread { coreContext.postOnCoreThread {
if (::currentCall.isInitialized) { if (::currentCall.isInitialized) {
val quality = currentCall.currentQuality val state = currentCall.state
val icon = when { if (!LinphoneUtils.isCallEnding(state, true)) {
quality >= 4 -> R.drawable.cell_signal_full val quality = currentCall.currentQuality
quality >= 3 -> R.drawable.cell_signal_high val icon = when {
quality >= 2 -> R.drawable.cell_signal_medium quality >= 4 -> R.drawable.cell_signal_full
quality >= 1 -> R.drawable.cell_signal_low quality >= 3 -> R.drawable.cell_signal_high
else -> R.drawable.cell_signal_none quality >= 2 -> R.drawable.cell_signal_medium
} quality >= 1 -> R.drawable.cell_signal_low
qualityValue.postValue(quality) else -> R.drawable.cell_signal_none
qualityIcon.postValue(icon) }
} qualityValue.postValue(quality)
qualityIcon.postValue(icon)
updateCallQualityIcon() updateCallQualityIcon()
}
}
} }
} }
} }