diff options
Diffstat (limited to 'android/src')
| -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) |
