summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-08 03:08:47 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-13 11:33:51 +0000
commitb8ddc651a78ac3b8507d663760253e50f227f26e (patch)
tree6620085562f6e879c88839fc4d6e20a3450cf5ec /android/src
parent52a66e4c4907dd03962674d02d209de8b19c6333 (diff)
downloadmullvadvpn-b8ddc651a78ac3b8507d663760253e50f227f26e.tar.xz
mullvadvpn-b8ddc651a78ac3b8507d663760253e50f227f26e.zip
Decouple `RelayListListener` from `MainActivity`
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/RelayListListener.kt15
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt2
2 files changed, 8 insertions, 9 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 df743a7e58..056331d223 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,6 @@
package net.mullvad.mullvadvpn.dataproxy
-import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@@ -10,10 +10,11 @@ import net.mullvad.mullvadvpn.model.RelaySettings
import net.mullvad.mullvadvpn.relaylist.RelayItem
import net.mullvad.mullvadvpn.relaylist.RelayList
import net.mullvad.mullvadvpn.service.MullvadDaemon
-import net.mullvad.mullvadvpn.ui.MainActivity
-class RelayListListener(val parentActivity: MainActivity) {
- private val daemon = CompletableDeferred<MullvadDaemon>()
+class RelayListListener(
+ val daemon: Deferred<MullvadDaemon>,
+ val settingsListener: SettingsListener
+) {
private val setUpJob = setUp()
private var relayList: RelayList? = null
@@ -36,14 +37,14 @@ class RelayListListener(val parentActivity: MainActivity) {
}
init {
- parentActivity.settingsListener.onRelaySettingsChange = { newRelaySettings ->
+ settingsListener.onRelaySettingsChange = { newRelaySettings ->
relaySettingsChanged(newRelaySettings)
}
}
fun onDestroy() {
setUpJob.cancel()
- parentActivity.settingsListener.onRelaySettingsChange = null
+ settingsListener.onRelaySettingsChange = null
if (daemon.isActive) {
daemon.cancel()
@@ -53,8 +54,6 @@ class RelayListListener(val parentActivity: MainActivity) {
}
private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
- daemon.complete(parentActivity.daemon.await())
-
setUpListener()
fetchInitialRelayList()
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
index 7c6daf4366..8fc70f34a3 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
@@ -44,7 +44,7 @@ class MainActivity : FragmentActivity() {
val keyStatusListener = KeyStatusListener(daemon)
val problemReport = MullvadProblemReport()
var settingsListener = SettingsListener(daemon)
- var relayListListener = RelayListListener(this)
+ var relayListListener = RelayListListener(daemon, settingsListener)
val locationInfoCache = LocationInfoCache(daemon, connectivityListener, relayListListener)
val accountCache = AccountCache(settingsListener, daemon)
val wwwAuthTokenRetriever = WwwAuthTokenRetriever(daemon)