in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/presentation/manager/NetworkManager.kt [13:36]
fun isNetworkConnectionAvailable(): Boolean {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
if (capabilities != null) {
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)
}
} else {
val networkInfo = connectivityManager.activeNetworkInfo
networkInfo ?: return false
return networkInfo.isConnected && (
networkInfo.type == ConnectivityManager.TYPE_WIFI ||
networkInfo.type == ConnectivityManager.TYPE_MOBILE
) ||
networkInfo.type == ConnectivityManager.TYPE_ETHERNET
}
return false
}