From ffcfd81c28f448ccebacf35d41ef23572353b8a4 Mon Sep 17 00:00:00 2001 From: Thomas Anderson <127358482+zc-devs@users.noreply.github.com> Date: Fri, 5 Sep 2025 15:45:00 +0300 Subject: [PATCH] Check also underlaying transport --- .../tempo/subsonic/utils/CacheUtil.java | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/subsonic/utils/CacheUtil.java b/app/src/main/java/com/cappielloantonio/tempo/subsonic/utils/CacheUtil.java index 047b0010..69dc9dd4 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/subsonic/utils/CacheUtil.java +++ b/app/src/main/java/com/cappielloantonio/tempo/subsonic/utils/CacheUtil.java @@ -38,21 +38,36 @@ public class CacheUtil { return chain.proceed(request); }; + private boolean isConnected() { ConnectivityManager connectivityManager = (ConnectivityManager) App.getContext().getSystemService(Context.CONNECTIVITY_SERVICE); - - if (connectivityManager != null) { - Network network = connectivityManager.getActiveNetwork(); - - if (network != null) { - NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); - - if (capabilities != null) { - return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); - } - } + if (connectivityManager == null) { + return false; } - return false; + Network network = connectivityManager.getActiveNetwork(); + if (network == null) { + return false; + } + + NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); + if (capabilities == null) { + return false; + } + + boolean hasInternet = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); + if (!hasInternet) { + return false; + } + + boolean hasAppropriateTransport = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) + || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET); + if (!hasAppropriateTransport) { + return false; + } + + return true; } + }