diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-12-11 23:30:22 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-01-07 14:03:29 +0000 |
| commit | 8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63 (patch) | |
| tree | 123587d0d152edf0300d06e44f2cb8d2c059f81b | |
| parent | c00a5ab44acf4fe75b1bfb821b2bae2a3b71bd58 (diff) | |
| download | mullvadvpn-8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63.tar.xz mullvadvpn-8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63.zip | |
Use synchronous daemon in `SettingsListener`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt | 23 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt | 2 |
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) |
