summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-11 23:09:27 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-01-07 14:03:28 +0000
commitc00a5ab44acf4fe75b1bfb821b2bae2a3b71bd58 (patch)
treeb9dad6649977a865a582f7d62d9dfae822ef1ffb
parent814e25e623b8f717aee66d66e2ccaca720930ebc (diff)
downloadmullvadvpn-c00a5ab44acf4fe75b1bfb821b2bae2a3b71bd58.tar.xz
mullvadvpn-c00a5ab44acf4fe75b1bfb821b2bae2a3b71bd58.zip
Use synchronous daemon in `RelayListListener`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt21
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt2
2 files changed, 7 insertions, 16 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt
index 056331d223..5fe1918551 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt
@@ -1,6 +1,5 @@
package net.mullvad.mullvadvpn.dataproxy
-import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@@ -11,10 +10,7 @@ import net.mullvad.mullvadvpn.relaylist.RelayItem
import net.mullvad.mullvadvpn.relaylist.RelayList
import net.mullvad.mullvadvpn.service.MullvadDaemon
-class RelayListListener(
- val daemon: Deferred<MullvadDaemon>,
- val settingsListener: SettingsListener
-) {
+class RelayListListener(val daemon: MullvadDaemon, val settingsListener: SettingsListener) {
private val setUpJob = setUp()
private var relayList: RelayList? = null
@@ -45,12 +41,7 @@ class RelayListListener(
fun onDestroy() {
setUpJob.cancel()
settingsListener.onRelaySettingsChange = null
-
- if (daemon.isActive) {
- daemon.cancel()
- } else {
- daemon.getCompleted().onRelayListChange = null
- }
+ daemon.onRelayListChange = null
}
private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
@@ -58,14 +49,14 @@ class RelayListListener(
fetchInitialRelayList()
}
- private suspend fun setUpListener() {
- daemon.await().onRelayListChange = { relayLocations ->
+ private fun setUpListener() {
+ daemon.onRelayListChange = { relayLocations ->
relayListChanged(RelayList(relayLocations))
}
}
- private suspend fun fetchInitialRelayList() {
- val relayLocations = daemon.await().getRelayLocations()
+ private fun fetchInitialRelayList() {
+ val relayLocations = daemon.getRelayLocations()
synchronized(this) {
if (relayList == null) {
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 8fcee52347..02a3bb9a54 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
@@ -24,7 +24,7 @@ class ServiceConnection(private val service: ServiceInstance, val mainActivity:
val keyStatusListener = KeyStatusListener(daemon)
val settingsListener = SettingsListener(asyncDaemon)
val accountCache = AccountCache(settingsListener, daemon)
- var relayListListener = RelayListListener(asyncDaemon, settingsListener)
+ var relayListListener = RelayListListener(daemon, settingsListener)
val locationInfoCache = LocationInfoCache(daemon, connectivityListener, relayListListener)
val wwwAuthTokenRetriever = WwwAuthTokenRetriever(asyncDaemon)