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/dataproxy/SettingsListener.kt23
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt2
2 files changed, 5 insertions, 20 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
index a1c87442ba..a822526890 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
@@ -1,19 +1,14 @@
package net.mullvad.mullvadvpn.dataproxy
-import kotlinx.coroutines.Deferred
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.model.RelaySettings
import net.mullvad.mullvadvpn.model.Settings
import net.mullvad.mullvadvpn.service.MullvadDaemon
-class SettingsListener(val asyncDaemon: Deferred<MullvadDaemon>) {
- private lateinit var daemon: MullvadDaemon
-
- private val setUpJob = setUp()
+class SettingsListener(val daemon: MullvadDaemon) {
+ private val listenerId = daemon.onSettingsChange.subscribe { maybeSettings ->
+ maybeSettings?.let { settings -> handleNewSettings(settings) }
+ }
- private var listenerId = -1
private var settings: Settings? = null
var onAccountNumberChange: ((String?) -> Unit)? = null
@@ -33,21 +28,11 @@ class SettingsListener(val asyncDaemon: Deferred<MullvadDaemon>) {
}
fun onDestroy() {
- setUpJob.cancel()
-
if (listenerId != -1) {
daemon.onSettingsChange.unsubscribe(listenerId)
}
}
- private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
- daemon = asyncDaemon.await()
-
- listenerId = daemon.onSettingsChange.subscribe { maybeSettings ->
- maybeSettings?.let { settings -> handleNewSettings(settings) }
- }
- }
-
private fun handleNewSettings(newSettings: Settings) {
synchronized(this) {
if (settings?.accountToken != newSettings.accountToken) {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
index 02a3bb9a54..140c4c669c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
@@ -22,7 +22,7 @@ class ServiceConnection(private val service: ServiceInstance, val mainActivity:
val appVersionInfoCache = AppVersionInfoCache(mainActivity, daemon)
val keyStatusListener = KeyStatusListener(daemon)
- val settingsListener = SettingsListener(asyncDaemon)
+ val settingsListener = SettingsListener(daemon)
val accountCache = AccountCache(settingsListener, daemon)
var relayListListener = RelayListListener(daemon, settingsListener)
val locationInfoCache = LocationInfoCache(daemon, connectivityListener, relayListListener)