Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2019-09-27 22:59:54 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-09-27 22:59:54 +0300
commit6a34aac9dde56ae01bcf846a40eb7484bcfc9017 (patch)
treec7fc36bbb96a21830c54e585970081e1aea21ae7 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
parent7e775cbbcd593f153907d534de19a1f12e377460 (diff)
changed internet connection check depending on setting
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java29
1 files changed, 28 insertions, 1 deletions
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 d777041e4..5713da722 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
@@ -4,6 +4,10 @@ import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkInfo;
+import android.preference.PreferenceManager;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
@@ -76,7 +80,30 @@ public class ServerAdapter {
public boolean hasInternetConnection(){
ConnectivityManager cm = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
- return cm != null && cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
+ if (cm != null) {
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext);
+ if (sharedPreferences.getBoolean(applicationContext.getResources().getString(R.string.pref_key_wifi_only), false)){
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
+ Network network = cm.getActiveNetwork();
+ NetworkCapabilities capabilities = cm.getNetworkCapabilities(network);
+ if (capabilities == null) {
+ return false;
+ }
+ return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
+ } else {
+ NetworkInfo networkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+ if (networkInfo == null) {
+ return false;
+ }
+ return networkInfo.isConnected();
+ }
+
+
+ } else {
+ return cm != null && cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
+ }
+ }
+ return false;
}
private String getLastSyncDateFormatted(long accountId) {