From 6a0d9b523bde8211430247bf8e2aa5052f1a1a89 Mon Sep 17 00:00:00 2001 From: andrekir Date: Sun, 25 Feb 2024 08:29:39 -0300 Subject: [PATCH] refactor: handle closing NsdManager service discovery if already stopped --- .../com/geeksville/mesh/repository/network/NsdManager.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/repository/network/NsdManager.kt b/app/src/main/java/com/geeksville/mesh/repository/network/NsdManager.kt index d10071965..589591d4c 100644 --- a/app/src/main/java/com/geeksville/mesh/repository/network/NsdManager.kt +++ b/app/src/main/java/com/geeksville/mesh/repository/network/NsdManager.kt @@ -56,7 +56,13 @@ private fun NsdManager.discoverServices( trySend(emptyList()) // Emit an initial empty list discoverServices(serviceType, protocolType, discoveryListener) - awaitClose { stopServiceDiscovery(discoveryListener) } + awaitClose { + try { + stopServiceDiscovery(discoveryListener) + } catch (ex: IllegalArgumentException) { + // ignore if discovery is already stopped + } + } } private suspend fun NsdManager.resolveService(