diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-29 17:41:53 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-31 15:32:33 +0000 |
| commit | ef253d8230e40e2c0ec315c85c518a3b3685f0c4 (patch) | |
| tree | 1d12fc7a091685c918af328eed823436c4e7abd7 | |
| parent | 0864ddbd4e1d7566f50affa261dcc6a7f969db96 (diff) | |
| download | mullvadvpn-ef253d8230e40e2c0ec315c85c518a3b3685f0c4.tar.xz mullvadvpn-ef253d8230e40e2c0ec315c85c518a3b3685f0c4.zip | |
Store version info in `AppVersionInfoCache`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AppVersionInfoCache.kt | 41 |
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) + } } |
