enhancement: simplify network availability checks (#1013)

This commit is contained in:
Christopher 2024-06-22 02:06:14 -04:00 committed by GitHub
parent 65c03c635c
commit ead7100948
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4,7 +4,6 @@ import android.annotation.SuppressLint
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
class DefaultNetworkManager(
private val context: Context,
@ -12,18 +11,8 @@ class DefaultNetworkManager(
@SuppressLint("MissingPermission")
override suspend fun isNetworkAvailable(): Boolean =
with(context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val capabilities = getNetworkCapabilities(activeNetwork) ?: return@with false
when {
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
else -> false
}
} else if (activeNetworkInfo != null && activeNetworkInfo?.isConnectedOrConnecting == true) {
true
} else {
false
}
// min SDK for project is 26 and methods used are 23+
val netCapabilities = getNetworkCapabilities(activeNetwork)
return netCapabilities != null && netCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && netCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
}
}