diff options
Diffstat (limited to 'android/src')
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) |
