summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-07 00:18:51 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-16 12:14:04 +0000
commiteede0577955c2986281f2cf361fee5969a320cce (patch)
tree47c7bdd06dfec703ef53183d20c9e41189621b59 /android/src
parent2286914b2e5aac9f11840f0e705dfd5ff757cb80 (diff)
downloadmullvadvpn-eede0577955c2986281f2cf361fee5969a320cce.tar.xz
mullvadvpn-eede0577955c2986281f2cf361fee5969a320cce.zip
Handle version events in UI `AppVersionInfoCache`
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt40
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt2
2 files changed, 14 insertions, 28 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
index 4d74b9dd24..2ac54297d5 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt
@@ -1,23 +1,19 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
import android.content.Context
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
+import net.mullvad.mullvadvpn.ipc.DispatchingHandler
+import net.mullvad.mullvadvpn.ipc.Event
import net.mullvad.mullvadvpn.model.AppVersionInfo
-import net.mullvad.mullvadvpn.service.MullvadDaemon
class AppVersionInfoCache(
val context: Context,
- val daemon: MullvadDaemon,
+ eventDispatcher: DispatchingHandler<Event>,
val settingsListener: SettingsListener
) {
companion object {
val LEGACY_SHARED_PREFERENCES = "app_version_info_cache"
}
- private val setUpJob = setUp()
-
private var appVersionInfo: AppVersionInfo? = null
set(value) {
synchronized(this) {
@@ -53,6 +49,16 @@ class AppVersionInfoCache(
private set
init {
+ eventDispatcher.apply {
+ registerHandler(Event.CurrentVersion::class) { event ->
+ version = event.version
+ }
+
+ registerHandler(Event.AppVersionInfo::class) { event ->
+ appVersionInfo = event.versionInfo
+ }
+ }
+
settingsListener.settingsNotifier.subscribe(this) { maybeSettings ->
maybeSettings?.let { settings ->
showBetaReleases = settings.showBetaReleases
@@ -68,27 +74,7 @@ class AppVersionInfoCache(
}
fun onDestroy() {
- setUpJob.cancel()
settingsListener.settingsNotifier.unsubscribe(this)
- daemon.onAppVersionInfoChange = null
onUpdate = null
}
-
- private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
- val currentVersion = daemon.getCurrentVersion()
-
- version = currentVersion
-
- daemon.onAppVersionInfoChange = { newAppVersionInfo ->
- appVersionInfo = newAppVersionInfo
- }
-
- synchronized(this@AppVersionInfoCache) {
- val initialVersionInfo = daemon.getVersionInfo()
-
- if (appVersionInfo == null) {
- appVersionInfo = initialVersionInfo
- }
- }
- }
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt
index bf623a2bc9..54acbd1f52 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt
@@ -44,7 +44,7 @@ class ServiceConnection(private val service: ServiceInstance, mainActivity: Main
)
val vpnPermission = VpnPermission(service.messenger)
- val appVersionInfoCache = AppVersionInfoCache(mainActivity, daemon, settingsListener)
+ val appVersionInfoCache = AppVersionInfoCache(mainActivity, dispatcher, settingsListener)
val customDns = CustomDns(service.messenger, settingsListener)
var relayListListener = RelayListListener(daemon, settingsListener)