From 49e0d32fa4e8e031dedb82cb53a8a505338a40ee Mon Sep 17 00:00:00 2001 From: andrekir Date: Tue, 28 Nov 2023 18:32:09 -0300 Subject: [PATCH] fix: network discovery list concurrency handling --- .../mesh/repository/network/NetworkRepository.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/repository/network/NetworkRepository.kt b/app/src/main/java/com/geeksville/mesh/repository/network/NetworkRepository.kt index ad457caa2..4e9b859ea 100644 --- a/app/src/main/java/com/geeksville/mesh/repository/network/NetworkRepository.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/network/NetworkRepository.kt @@ -14,6 +14,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import javax.inject.Inject import javax.inject.Singleton @@ -51,9 +52,11 @@ class NetworkRepository @Inject constructor( processLifecycle.coroutineScope.launch(dispatchers.default) { nsdManagerLazy.get()?.let { manager -> manager.discoverServices(SERVICE_TYPE).collect { serviceList -> - _resolvedList.value = serviceList - .filter { it.serviceName == SERVICE_NAME } - .mapNotNull { manager.resolveService(it) } + _resolvedList.update { + serviceList + .filter { it.serviceName == SERVICE_NAME } + .mapNotNull { manager.resolveService(it) } + } } } }