From 846fcb5bc7335752969d023f5b65fd08cb2d5ffb Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 1 Apr 2026 13:13:24 +0300 Subject: [PATCH] Acquire wifi lock also when wifi is available but not the active network --- .../com/tutpro/baresip/BaresipService.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 256ffced..175c5618 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -1795,23 +1795,29 @@ class BaresipService: Service() { Log.d(TAG, "Added/Removed/Old/New Active = $added/$removed/$activeNetwork/$active") if (added > 0 || removed > 0 || active != activeNetwork) { + Api.net_debug() linkAddresses = addresses activeNetwork = active Api.uag_reset_transp(register = true, reinvite = true) } - Api.net_debug() + val hasWifi = allNetworks.any { network -> + val caps = cm.getNetworkCapabilities(network) + caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + } - if (activeNetwork != null) { - val caps = cm.getNetworkCapabilities(activeNetwork) - if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { + if (hasWifi) { + if (!wifiLock.isHeld) { Log.d(TAG, "Acquiring WiFi Lock") wifiLock.acquire() - return } } - Log.d(TAG, "Releasing WiFi Lock") - wifiLock.release() + else { + if (wifiLock.isHeld) { + Log.d(TAG, "Releasing WiFi Lock") + wifiLock.release() + } + } } private fun linkAddresses(): MutableMap {