diff options
author | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2021-03-24 15:06:00 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-24 15:06:00 +0300 |
commit | efd3ad59e17fadb5c7638d51f8ae36d538be88b3 (patch) | |
tree | 21eb62122a48855bfa4acfa55f1fad121b077d7c /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters | |
parent | 0e7f8d449e6780120ef641c07cca04ca8e017046 (diff) |
Provide setting to disable eTags
See #888
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java | 19 |
1 files changed, 12 insertions, 7 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 a1051b98c..8cadbaec8 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 @@ -53,6 +53,8 @@ import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; public class ServerAdapter { private final String prefKeyWifiOnly; + private final String prefKeyEtags; + final SharedPreferences sharedPreferences; @NonNull private final Context applicationContext; @@ -65,7 +67,9 @@ public class ServerAdapter { public ServerAdapter(@NonNull Context applicationContext, @Nullable String ssoAccountName) { this.applicationContext = applicationContext; prefKeyWifiOnly = applicationContext.getResources().getString(R.string.pref_key_wifi_only); + prefKeyEtags = applicationContext.getResources().getString(R.string.pref_key_etags); provider = new ApiProvider(applicationContext, ssoAccountName); + sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext); } public String getServerUrl() { @@ -90,7 +94,6 @@ public class ServerAdapter { public boolean hasInternetConnection() { ConnectivityManager cm = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE); if (cm != null) { - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext); if (sharedPreferences.getBoolean(prefKeyWifiOnly, false)) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { Network network = cm.getActiveNetwork(); @@ -106,8 +109,6 @@ public class ServerAdapter { } return networkInfo.isConnected(); } - - } else { return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected(); } @@ -128,9 +129,13 @@ public class ServerAdapter { } public void getBoards(IResponseCallback<ParsedResponse<List<FullBoard>>> responseCallback) { - RequestHelper.request(provider, () -> - provider.getDeckAPI().getBoards(true, getLastSyncDateFormatted(responseCallback.getAccount().getId()), responseCallback.getAccount().getBoardsEtag()), - responseCallback); + RequestHelper.request(provider, () -> isEtagsEnabled() + ? provider.getDeckAPI().getBoards(true, getLastSyncDateFormatted(responseCallback.getAccount().getId()), responseCallback.getAccount().getBoardsEtag()) + : provider.getDeckAPI().getBoards(true, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback); + } + + public boolean isEtagsEnabled() { + return sharedPreferences.getBoolean(prefKeyEtags, true); } public void getCapabilities(String eTag, IResponseCallback<ParsedResponse<Capabilities>> responseCallback) { @@ -224,7 +229,7 @@ public class ServerAdapter { ensureInternetConnection(); RequestHelper.request(provider, () -> { final Account account = responseCallback.getAccount(); - if(account != null && account.getServerDeckVersionAsObject().supportsFileAttachments()) { + if (account != null && account.getServerDeckVersionAsObject().supportsFileAttachments()) { return provider.getDeckAPI().getCard_1_1(boardId, stackId, cardId, getLastSyncDateFormatted(responseCallback.getAccount().getId())); } return provider.getDeckAPI().getCard_1_0(boardId, stackId, cardId, getLastSyncDateFormatted(responseCallback.getAccount().getId())); |