diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-03-10 12:29:11 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-03-10 12:29:11 +0300 |
commit | b5d54cdd1359a445fde46ac1cc3f7df1c22d44a8 (patch) | |
tree | d5da511bd52076826f49d494a74d80c11d7476f8 | |
parent | f9a58619d4ff2719bb67cdd15b8684db4118083d (diff) |
Simplify detection of supported versions
Signed-off-by: Stefan Niedermann <info@niedermann.it>
7 files changed, 16 insertions, 29 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java index cfd973831..c6b943946 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java @@ -1,9 +1,6 @@ package it.niedermann.nextcloud.deck.model.ocs; -import android.content.Context; - import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.StringRes; import java.util.regex.Matcher; @@ -15,11 +12,10 @@ import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment; public class Version implements Comparable<Version> { private static final Pattern NUMBER_EXTRACTION_PATTERN = Pattern.compile("[0-9]+"); + private static final Version VERSION_0_6_4 = new Version("0.6.4", 0, 6, 4); private static final Version VERSION_1_0_0 = new Version("1.0.0", 1, 0, 0); private static final Version VERSION_1_0_3 = new Version("1.0.3", 1, 0, 3); private static final Version VERSION_1_3_0 = new Version("1.3.0", 1, 3, 0); - @Nullable - private static Version VERSION_MINIMUM_SUPPORTED; private String originalVersion = "?"; private int major = 0; @@ -64,7 +60,7 @@ public class Version implements Comparable<Version> { public static Version of(String versionString) { int major = 0, minor = 0, micro = 0; if (versionString != null) { - String[] split = versionString.split("\\."); + final String[] split = versionString.split("\\."); if (split.length > 0) { major = extractNumber(split[0]); if (split.length > 1) { @@ -87,18 +83,12 @@ public class Version implements Comparable<Version> { } @NonNull - public static Version minimumSupported(@NonNull Context context) { - if (VERSION_MINIMUM_SUPPORTED == null) { - final int minimumServerAppMajor = context.getResources().getInteger(R.integer.minimum_server_app_major); - final int minimumServerAppMinor = context.getResources().getInteger(R.integer.minimum_server_app_minor); - final int minimumServerAppPatch = context.getResources().getInteger(R.integer.minimum_server_app_patch); - VERSION_MINIMUM_SUPPORTED = new Version(minimumServerAppMajor + "." + minimumServerAppMinor + "." + minimumServerAppPatch, minimumServerAppMajor, minimumServerAppMinor, minimumServerAppPatch); - } - return VERSION_MINIMUM_SUPPORTED; + public static Version minimumSupported() { + return VERSION_0_6_4; } - public boolean isSupported(@NonNull Context context) { - return isGreaterOrEqualTo(Version.minimumSupported(context)); + public boolean isSupported() { + return isGreaterOrEqualTo(minimumSupported()); } /** diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java index c80d31c21..1c0ec97c5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java @@ -215,7 +215,7 @@ public class SyncManager { @Override public void onResponse(Capabilities response) { if (response != null && !response.isMaintenanceEnabled()) { - if (response.getDeckVersion().isSupported(appContext)) { + if (response.getDeckVersion().isSupported()) { long accountId = callbackAccountId; Instant lastSyncDate = LastSyncUtil.getLastSyncDate(callbackAccountId); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java index 066f65698..7505449ef 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java @@ -136,7 +136,7 @@ public class ImportAccountActivity extends AppCompatActivity { @Override public void onResponse(Capabilities response) { if (!response.isMaintenanceEnabled()) { - if (response.getDeckVersion().isSupported(getApplicationContext())) { + if (response.getDeckVersion().isSupported()) { syncManager.synchronize(new IResponseCallback<Boolean>(account) { @Override public void onResponse(Boolean response) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index 283767695..e1909737f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -294,7 +294,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener if (mainViewModel.isCurrentAccountIsSupportedVersion()) { binding.infoBoxVersionNotSupported.setVisibility(View.GONE); } else { - binding.infoBoxVersionNotSupportedText.setText(getString(R.string.info_box_version_not_supported, mainViewModel.getCurrentAccount().getServerDeckVersion(), Version.minimumSupported(this).getOriginalVersion())); + binding.infoBoxVersionNotSupportedText.setText(getString(R.string.info_box_version_not_supported, mainViewModel.getCurrentAccount().getServerDeckVersion(), Version.minimumSupported().getOriginalVersion())); binding.infoBoxVersionNotSupportedText.setOnClickListener((v) -> { Intent openURL = new Intent(Intent.ACTION_VIEW); openURL.setData(Uri.parse(mainViewModel.getCurrentAccount().getUrl() + getString(R.string.url_fragment_update_deck))); @@ -500,7 +500,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener binding.swipeRefreshLayout.setRefreshing(false); } else { // If we notice after updating the capabilities, that the new version is not supported, but it was previously, recreate the activity to make sure all elements are disabled properly - if (mainViewModel.getCurrentAccount().getServerDeckVersionAsObject().isSupported(MainActivity.this) && !response.getDeckVersion().isSupported(MainActivity.this)) { + if (mainViewModel.getCurrentAccount().getServerDeckVersionAsObject().isSupported() && !response.getDeckVersion().isSupported()) { ActivityCompat.recreate(MainActivity.this); } } @@ -625,7 +625,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener binding.navigationView.setItemIconTintList(null); Menu menu = binding.navigationView.getMenu(); menu.clear(); - DrawerMenuUtil.inflateBoards(this, menu, this.boardsList, mainViewModel.currentAccountHasArchivedBoards(), mainViewModel.getCurrentAccount().getServerDeckVersionAsObject().isSupported(this)); + DrawerMenuUtil.inflateBoards(this, menu, this.boardsList, mainViewModel.currentAccountHasArchivedBoards(), mainViewModel.getCurrentAccount().getServerDeckVersionAsObject().isSupported()); binding.navigationView.setCheckedItem(boardsList.indexOf(currentBoard)); } @@ -772,7 +772,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener @Override public void onResponse(Capabilities response) { if (!response.isMaintenanceEnabled()) { - if (response.getDeckVersion().isSupported(getApplicationContext())) { + if (response.getDeckVersion().isSupported()) { runOnUiThread(() -> { mainViewModel.setSyncManager(importSyncManager); mainViewModel.setCurrentAccount(account); @@ -796,7 +796,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener }); }); } else { - DeckLog.warn("Cannot import account because server version is too low (" + response.getDeckVersion() + "). Minimum server version is currently " + Version.minimumSupported(getApplicationContext())); + DeckLog.warn("Cannot import account because server version is too low (" + response.getDeckVersion() + "). Minimum server version is currently " + Version.minimumSupported()); runOnUiThread(() -> new BrandedAlertDialogBuilder(MainActivity.this) .setTitle(R.string.update_deck) .setMessage(getString(R.string.deck_outdated_please_update, response.getDeckVersion().getOriginalVersion())) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java index ac244b88e..62642971e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java @@ -58,7 +58,7 @@ public class MainViewModel extends AndroidViewModel { public void setCurrentAccount(Account currentAccount) { this.currentAccount.setValue(currentAccount); - this.currentAccountIsSupportedVersion = currentAccount.getServerDeckVersionAsObject().isSupported(getApplication().getApplicationContext()); + this.currentAccountIsSupportedVersion = currentAccount.getServerDeckVersionAsObject().isSupported(); } public void setCurrentBoard(@NonNull Board currentBoard) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java index 546c82bfd..73cb2d5e4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java @@ -124,7 +124,7 @@ public class EditActivity extends BrandedActivity { viewModel.setCanEdit(fullBoard.getBoard().isPermissionEdit()); invalidateOptionsMenu(); if (viewModel.isCreateMode()) { - viewModel.initializeNewCard(boardId, args.getLong(BUNDLE_KEY_STACK_ID), account.getServerDeckVersionAsObject().isSupported(this)); + viewModel.initializeNewCard(boardId, args.getLong(BUNDLE_KEY_STACK_ID), account.getServerDeckVersionAsObject().isSupported()); invalidateOptionsMenu(); String title = args.getString(BUNDLE_KEY_TITLE); if (!TextUtils.isEmpty(title)) { @@ -145,7 +145,7 @@ public class EditActivity extends BrandedActivity { .setPositiveButton(R.string.simple_close, (a, b) -> super.finish()) .show(); } else { - viewModel.initializeExistingCard(boardId, fullCard, account.getServerDeckVersionAsObject().isSupported(this)); + viewModel.initializeExistingCard(boardId, fullCard, account.getServerDeckVersionAsObject().isSupported()); invalidateOptionsMenu(); setupViewPager(); setupTitle(); diff --git a/app/src/main/res/values/setup.xml b/app/src/main/res/values/setup.xml index f8f43fb1e..ae3aad84e 100644 --- a/app/src/main/res/values/setup.xml +++ b/app/src/main/res/values/setup.xml @@ -47,9 +47,6 @@ <string name="shared_preference_last_account" translatable="false">it.niedermann.nextcloud.deck.last_account</string> <string name="shared_preference_last_board_for_account_" translatable="false">it.niedermann.nextcloud.deck.last_board_for_account_</string> <string name="shared_preference_last_stack_for_account_and_board_" translatable="false">it.niedermann.nextcloud.deck.last_stack_for_board_</string> - <integer name="minimum_server_app_major" translatable="false">0</integer> - <integer name="minimum_server_app_minor" translatable="false">6</integer> - <integer name="minimum_server_app_patch" translatable="false">4</integer> <!-- Transitions --> <string name="transition_attachment_preview" translatable="false">transition_attachment_preview_%1$s</string> |