summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-11 23:30:22 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-01-07 14:03:29 +0000
commit8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63 (patch)
tree123587d0d152edf0300d06e44f2cb8d2c059f81b /android/src/main
parentc00a5ab44acf4fe75b1bfb821b2bae2a3b71bd58 (diff)
downloadmullvadvpn-8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63.tar.xz
mullvadvpn-8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63.zip
Use synchronous daemon in `SettingsListener`
Diffstat (limited to 'android/src/main')
-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)