Acquire wifi lock also when wifi is available but not the active network

This commit is contained in:
Juha Heinanen
2026-04-01 13:13:24 +03:00
parent dd8c8fffea
commit 846fcb5bc7

View File

@ -1795,24 +1795,30 @@ class BaresipService: Service() {
Log.d(TAG, "Added/Removed/Old/New Active = $added/$removed/$activeNetwork/$active") Log.d(TAG, "Added/Removed/Old/New Active = $added/$removed/$activeNetwork/$active")
if (added > 0 || removed > 0 || active != activeNetwork) { if (added > 0 || removed > 0 || active != activeNetwork) {
Api.net_debug()
linkAddresses = addresses linkAddresses = addresses
activeNetwork = active activeNetwork = active
Api.uag_reset_transp(register = true, reinvite = true) 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) { if (hasWifi) {
val caps = cm.getNetworkCapabilities(activeNetwork) if (!wifiLock.isHeld) {
if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
Log.d(TAG, "Acquiring WiFi Lock") Log.d(TAG, "Acquiring WiFi Lock")
wifiLock.acquire() wifiLock.acquire()
return
} }
} }
else {
if (wifiLock.isHeld) {
Log.d(TAG, "Releasing WiFi Lock") Log.d(TAG, "Releasing WiFi Lock")
wifiLock.release() wifiLock.release()
} }
}
}
private fun linkAddresses(): MutableMap<String, String> { private fun linkAddresses(): MutableMap<String, String> {
val addresses = mutableMapOf<String, String>() val addresses = mutableMapOf<String, String>()