summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt23
1 files changed, 14 insertions, 9 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
index a2b67ead5e..ed9c2bf4ea 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
@@ -17,19 +17,24 @@ import android.widget.Button
import android.widget.ImageButton
import android.widget.TextView
+import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache
+
class SettingsFragment : Fragment() {
private lateinit var parentActivity: MainActivity
+ private lateinit var versionInfoCache: AppVersionInfoCache
+
private lateinit var remainingTimeLabel: RemainingTimeLabel
private lateinit var appVersionWarning: View
private lateinit var appVersionLabel: TextView
private lateinit var appVersionFooter: View
- private var showCurrentVersionJob: Job? = null
+ private var updateVersionInfoJob: Job? = null
override fun onAttach(context: Context) {
super.onAttach(context)
parentActivity = context as MainActivity
+ versionInfoCache = parentActivity.appVersionInfoCache
}
override fun onCreateView(
@@ -62,23 +67,26 @@ class SettingsFragment : Fragment() {
appVersionLabel = view.findViewById<TextView>(R.id.app_version_label)
appVersionFooter = view.findViewById(R.id.app_version_footer)
- showCurrentVersionJob = showCurrentVersion()
-
return view
}
override fun onResume() {
super.onResume()
remainingTimeLabel.onResume()
+ versionInfoCache.onUpdate = {
+ updateVersionInfoJob?.cancel()
+ updateVersionInfoJob = updateVersionInfo()
+ }
}
override fun onPause() {
+ versionInfoCache.onUpdate = null
remainingTimeLabel.onPause()
super.onPause()
}
override fun onDestroyView() {
- showCurrentVersionJob?.cancel()
+ updateVersionInfoJob?.cancel()
super.onDestroyView()
}
@@ -102,11 +110,8 @@ class SettingsFragment : Fragment() {
startActivity(intent)
}
- private fun showCurrentVersion() = GlobalScope.launch(Dispatchers.Main) {
- val versionInfoCache = parentActivity.appVersionInfoCache
- val version = versionInfoCache.currentVersion.await()
-
- appVersionLabel.setText(version)
+ private fun updateVersionInfo() = GlobalScope.launch(Dispatchers.Main) {
+ appVersionLabel.setText(versionInfoCache.version ?: "")
if (versionInfoCache.isLatest && versionInfoCache.isSupported) {
appVersionWarning.visibility = View.GONE