diff options
author | desperateCoder <echotodevnull@gmail.com> | 2020-12-13 17:56:05 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2020-12-13 17:56:05 +0300 |
commit | ab66cedf7bd19789546eaad456f0503eff2b3752 (patch) | |
tree | 9ed6ee68ea37154184951d72fc5ed6b21a070b7c | |
parent | 3cab6716c9e005a4bba42dfbd342e6e1c764af27 (diff) |
#757 offline exception: hard fail on offline exception with extra info for @lightlike757-offline-exception
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/exceptions/OfflineException.java | 3 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java | 24 |
2 files changed, 23 insertions, 4 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/OfflineException.java b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/OfflineException.java index c63b801a0..e7f851dd2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/OfflineException.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/exceptions/OfflineException.java @@ -4,4 +4,7 @@ public class OfflineException extends IllegalStateException { public OfflineException() { super("Device is currently offline."); } + public OfflineException(String message) { + super(message); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java index bff8ddfdb..1fb8d19ac 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java @@ -94,23 +94,39 @@ public class ServerAdapter { Network network = cm.getActiveNetwork(); NetworkCapabilities capabilities = cm.getNetworkCapabilities(network); if (capabilities == null) { - return false; + throw new OfflineException("prefKeyWifiOnly=true, Android lower >=M: cm.getNetworkCapabilities(network) is null."); +// return false; } - return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); + boolean b = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); + if (!b) { + throw new OfflineException("prefKeyWifiOnly=true, Android lower >=M: capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) is false."); + } + return b; } else { NetworkInfo networkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (networkInfo == null) { - return false; + throw new OfflineException("prefKeyWifiOnly=true, Android lower than M: cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) is null."); + } + if (!networkInfo.isConnected()) { + throw new OfflineException("prefKeyWifiOnly=true, Android lower than M: networkInfo.isConnected() is false."); } return networkInfo.isConnected(); } } else { + if (cm.getActiveNetworkInfo() == null) { + throw new OfflineException("prefKeyWifiOnly=false: cm.getActiveNetworkInfo() is null."); + } + if (!cm.getActiveNetworkInfo().isConnected()) { + throw new OfflineException("prefKeyWifiOnly=false: cm.getActiveNetworkInfo().isConnected() is false."); + } + return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected(); } } - return false; + throw new OfflineException("ConnectivityManager is just null."); +// return false; } // TODO what is this? |