summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-29 17:41:53 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-31 15:32:33 +0000
commitef253d8230e40e2c0ec315c85c518a3b3685f0c4 (patch)
tree1d12fc7a091685c918af328eed823436c4e7abd7
parent0864ddbd4e1d7566f50affa261dcc6a7f969db96 (diff)
downloadmullvadvpn-ef253d8230e40e2c0ec315c85c518a3b3685f0c4.tar.xz
mullvadvpn-ef253d8230e40e2c0ec315c85c518a3b3685f0c4.zip
Store version info in `AppVersionInfoCache`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt41
1 files changed, 40 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt
index 0b99e97bb7..68a83a8489 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt
@@ -1,6 +1,10 @@
package net.mullvad.mullvadvpn.dataproxy
-class AppVersionInfoCache {
+import android.content.Context
+import android.content.SharedPreferences
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener
+
+class AppVersionInfoCache(val context: Context) {
companion object {
val KEY_CURRENT_IS_SUPPORTED = "current_is_supported"
val KEY_LAST_UPDATED = "last_updated"
@@ -8,4 +12,39 @@ class AppVersionInfoCache {
val KEY_LATEST = "latest"
val SHARED_PREFERENCES = "app_version_info_cache"
}
+
+ private val preferences = context.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE)
+
+ var lastUpdated = 0L
+ private set
+ var isSupported = true
+ private set
+ var latestStable: String? = null
+ private set
+ var latest: String? = null
+ private set
+
+ private val listener = object : OnSharedPreferenceChangeListener {
+ override fun onSharedPreferenceChanged(preferences: SharedPreferences, key: String) {
+ when (key) {
+ KEY_CURRENT_IS_SUPPORTED -> isSupported = preferences.getBoolean(key, isSupported)
+ KEY_LAST_UPDATED -> lastUpdated = preferences.getLong(key, lastUpdated)
+ KEY_LATEST_STABLE -> latestStable = preferences.getString(key, latestStable)
+ KEY_LATEST -> latest = preferences.getString(key, latest)
+ }
+ }
+ }
+
+ init {
+ preferences.registerOnSharedPreferenceChangeListener(listener)
+
+ lastUpdated = preferences.getLong(KEY_LAST_UPDATED, 0L)
+ isSupported = preferences.getBoolean(KEY_CURRENT_IS_SUPPORTED, true)
+ latestStable = preferences.getString(KEY_LATEST_STABLE, null)
+ latest = preferences.getString(KEY_LATEST, null)
+ }
+
+ fun onDestroy() {
+ preferences.unregisterOnSharedPreferenceChangeListener(listener)
+ }
}