diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-09-27 22:59:54 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-09-27 22:59:54 +0300 |
commit | 6a34aac9dde56ae01bcf846a40eb7484bcfc9017 (patch) | |
tree | c7fc36bbb96a21830c54e585970081e1aea21ae7 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java | |
parent | 7e775cbbcd593f153907d534de19a1f12e377460 (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.java | 29 |
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) { |