summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-25 22:15:30 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-16 12:14:04 +0000
commit3762ffa51bb744d1c827b666a9e8abbfd15a1b24 (patch)
tree950b43b18d23206825dab280cd1ffac0e01282a9 /android/src
parent3d607e3f815719757aed4749c1688f51bb1d712e (diff)
downloadmullvadvpn-3762ffa51bb744d1c827b666a9e8abbfd15a1b24.tar.xz
mullvadvpn-3762ffa51bb744d1c827b666a9e8abbfd15a1b24.zip
Move version cache migration from UI to service
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AppVersionInfoCache.kt12
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoCache.kt13
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnection.kt7
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()
}