diff --git a/app/src/main/java/com/nextcloud/client/preferences/AppPreferences.java b/app/src/main/java/com/nextcloud/client/preferences/AppPreferences.java index 4f4e85599480..8b295e467beb 100644 --- a/app/src/main/java/com/nextcloud/client/preferences/AppPreferences.java +++ b/app/src/main/java/com/nextcloud/client/preferences/AppPreferences.java @@ -400,4 +400,9 @@ default void onDarkThemeModeChanged(DarkMode mode) { boolean startAutoUploadOnStart(); void setLastAutoUploadOnStartTime(long timeInMillisecond); + + String getDismissedOutdatedServerVersion(); + + void setDismissedOutdatedServerVersion(String version); + } diff --git a/app/src/main/java/com/nextcloud/client/preferences/AppPreferencesImpl.java b/app/src/main/java/com/nextcloud/client/preferences/AppPreferencesImpl.java index 509e659bdf7a..ee77184faa8c 100644 --- a/app/src/main/java/com/nextcloud/client/preferences/AppPreferencesImpl.java +++ b/app/src/main/java/com/nextcloud/client/preferences/AppPreferencesImpl.java @@ -94,6 +94,7 @@ public final class AppPreferencesImpl implements AppPreferences { private static final String PREF__SELECTED_ACCOUNT_NAME = "select_oc_account"; private static final String PREF__MIGRATED_USER_ID = "migrated_user_id"; private static final String PREF__PHOTO_SEARCH_TIMESTAMP = "photo_search_timestamp"; + private static final String PREF__DISMISSED_OUTDATED_SERVER_VERSION = "dismissed_outdated_server_version"; private static final String PREF__PIN_BRUTE_FORCE_COUNT = "pin_brute_force_count"; private static final String PREF__UID_PID = "uid_pid"; @@ -877,4 +878,15 @@ public boolean startAutoUploadOnStart() { public void setLastAutoUploadOnStartTime(long timeInMillisecond) { preferences.edit().putLong(AUTO_PREF__LAST_AUTO_UPLOAD_ON_START, timeInMillisecond).apply(); } + + @Override + public String getDismissedOutdatedServerVersion() { + return preferences.getString(PREF__DISMISSED_OUTDATED_SERVER_VERSION, ""); + } + + @Override + public void setDismissedOutdatedServerVersion(String version) { + preferences.edit().putString(PREF__DISMISSED_OUTDATED_SERVER_VERSION, version).apply(); + } + } diff --git a/app/src/main/java/com/nextcloud/utils/SnackbarUtil.kt b/app/src/main/java/com/nextcloud/utils/SnackbarUtil.kt index a527af09ef42..e1298f40480d 100644 --- a/app/src/main/java/com/nextcloud/utils/SnackbarUtil.kt +++ b/app/src/main/java/com/nextcloud/utils/SnackbarUtil.kt @@ -55,9 +55,9 @@ object SnackbarUtil { ?.also { snackbar -> onMainThread(snackbar::show) } @JvmStatic - fun showServerOutdated(activity: Activity?, duration: Int) { + fun showServerOutdated(activity: Activity?, duration: Int, onDismiss: (() -> Unit)? = null) { create(activity.hostView(), R.string.outdated_server, duration) - ?.setAction(R.string.dismiss) { } + ?.setAction(R.string.dismiss) { onDismiss?.invoke() } ?.let { snackbar -> onMainThread(snackbar::show) } } diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index d3ae4fa89eee..542f27eb3ba1 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -490,7 +490,13 @@ class FileDisplayActivity : capability.hasValidSubscription.isTrue ) if (isOutdated) { - SnackbarUtil.showServerOutdated(this, Snackbar.LENGTH_LONG) + val serverVersion = currentUser.server.version.toString() + val dismissedVersion = preferences.getDismissedOutdatedServerVersion() + if (serverVersion != dismissedVersion) { + SnackbarUtil.showServerOutdated(this, Snackbar.LENGTH_LONG) { + preferences.setDismissedOutdatedServerVersion(serverVersion) + } + } } }