diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-25 22:15:30 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-16 12:14:04 +0000 |
| commit | 3762ffa51bb744d1c827b666a9e8abbfd15a1b24 (patch) | |
| tree | 950b43b18d23206825dab280cd1ffac0e01282a9 /android/src | |
| parent | 3d607e3f815719757aed4749c1688f51bb1d712e (diff) | |
| download | mullvadvpn-3762ffa51bb744d1c827b666a9e8abbfd15a1b24.tar.xz mullvadvpn-3762ffa51bb744d1c827b666a9e8abbfd15a1b24.zip | |
Move version cache migration from UI to service
Diffstat (limited to 'android/src')
5 files changed, 15 insertions, 21 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt index 1c7e6c0341..270abf4eec 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt @@ -1,10 +1,15 @@ package net.mullvad.mullvadvpn.service.endpoint +import android.content.Context import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.ipc.Event import net.mullvad.mullvadvpn.model.AppVersionInfo -class AppVersionInfoCache(endpoint: ServiceEndpoint) { +class AppVersionInfoCache(context: Context, endpoint: ServiceEndpoint) { + companion object { + val LEGACY_SHARED_PREFERENCES = "app_version_info_cache" + } + private val daemon = endpoint.intermittentDaemon var appVersionInfo by observable<AppVersionInfo?>(null) { _, _, info -> @@ -18,6 +23,11 @@ class AppVersionInfoCache(endpoint: ServiceEndpoint) { private set init { + context.getSharedPreferences(LEGACY_SHARED_PREFERENCES, Context.MODE_PRIVATE) + .edit() + .clear() + .commit() + daemon.registerListener(this) { newDaemon -> if (currentVersion == null && newDaemon != null) { currentVersion = newDaemon.getCurrentVersion() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt index 4a753bc01d..06c0c3926f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt @@ -40,7 +40,7 @@ class ServiceEndpoint( val settingsListener = SettingsListener(this) val accountCache = AccountCache(this) - val appVersionInfoCache = AppVersionInfoCache(this) + val appVersionInfoCache = AppVersionInfoCache(context, this) val customDns = CustomDns(this) val keyStatusListener = KeyStatusListener(this) val locationInfoCache = LocationInfoCache(this) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index 43f46a7101..6569c155d2 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -55,7 +55,7 @@ open class MainActivity : FragmentActivity() { serviceConnection?.onDestroy() val newConnection = service?.let { safeService -> - ServiceConnection(safeService, this@MainActivity) + ServiceConnection(safeService) } serviceConnection = newConnection 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 6bac1f20ee..c02ae54836 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,20 +1,14 @@ package net.mullvad.mullvadvpn.ui.serviceconnection -import android.content.Context import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.ipc.DispatchingHandler import net.mullvad.mullvadvpn.ipc.Event import net.mullvad.mullvadvpn.model.AppVersionInfo class AppVersionInfoCache( - val context: Context, eventDispatcher: DispatchingHandler<Event>, val settingsListener: SettingsListener ) { - companion object { - val LEGACY_SHARED_PREFERENCES = "app_version_info_cache" - } - private var appVersionInfo by observable<AppVersionInfo?>(null) { _, _, _ -> onUpdate?.invoke() } @@ -60,13 +54,6 @@ class AppVersionInfoCache( } } - fun onCreate() { - context.getSharedPreferences(LEGACY_SHARED_PREFERENCES, Context.MODE_PRIVATE) - .edit() - .clear() - .commit() - } - fun onDestroy() { settingsListener.settingsNotifier.unsubscribe(this) onUpdate = null 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 54acbd1f52..8cd894d335 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 @@ -10,7 +10,6 @@ import net.mullvad.mullvadvpn.ipc.DispatchingHandler import net.mullvad.mullvadvpn.ipc.Event import net.mullvad.mullvadvpn.ipc.Request import net.mullvad.mullvadvpn.service.ServiceInstance -import net.mullvad.mullvadvpn.ui.MainActivity import org.koin.core.component.KoinApiExtension import org.koin.core.parameter.parametersOf import org.koin.core.qualifier.named @@ -22,8 +21,7 @@ import org.koin.core.scope.get // The properties of this class can be used to send events to the service, to listen for events from // the service and to get values received from events. @OptIn(KoinApiExtension::class) -class ServiceConnection(private val service: ServiceInstance, mainActivity: MainActivity) : - KoinScopeComponent { +class ServiceConnection(private val service: ServiceInstance) : KoinScopeComponent { override val scope = getKoin().createScope( SERVICE_CONNECTION_SCOPE, named(SERVICE_CONNECTION_SCOPE), this @@ -44,12 +42,11 @@ class ServiceConnection(private val service: ServiceInstance, mainActivity: Main ) val vpnPermission = VpnPermission(service.messenger) - val appVersionInfoCache = AppVersionInfoCache(mainActivity, dispatcher, settingsListener) + val appVersionInfoCache = AppVersionInfoCache(dispatcher, settingsListener) val customDns = CustomDns(service.messenger, settingsListener) var relayListListener = RelayListListener(daemon, settingsListener) init { - appVersionInfoCache.onCreate() registerListener() } |
