summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-08 03:12:49 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-13 11:36:40 +0000
commit935b41bdc99b0e7bd94762242d651db794ae2bae (patch)
tree4f1f2bf9420a976ca94603feebf71a023f002874 /android/src
parentb8ddc651a78ac3b8507d663760253e50f227f26e (diff)
downloadmullvadvpn-935b41bdc99b0e7bd94762242d651db794ae2bae.tar.xz
mullvadvpn-935b41bdc99b0e7bd94762242d651db794ae2bae.zip
Create UI-side `ServiceConnection` class
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt38
1 files changed, 38 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
new file mode 100644
index 0000000000..7a6f93d2c3
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt
@@ -0,0 +1,38 @@
+package net.mullvad.mullvadvpn.ui
+
+import kotlinx.coroutines.CompletableDeferred
+import net.mullvad.mullvadvpn.dataproxy.AccountCache
+import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache
+import net.mullvad.mullvadvpn.dataproxy.KeyStatusListener
+import net.mullvad.mullvadvpn.dataproxy.LocationInfoCache
+import net.mullvad.mullvadvpn.dataproxy.RelayListListener
+import net.mullvad.mullvadvpn.dataproxy.SettingsListener
+import net.mullvad.mullvadvpn.dataproxy.WwwAuthTokenRetriever
+import net.mullvad.mullvadvpn.service.MullvadDaemon
+import net.mullvad.mullvadvpn.service.ServiceInstance
+import net.mullvad.talpid.ConnectivityListener
+
+class ServiceConnection(private val service: ServiceInstance, val mainActivity: MainActivity) {
+ private val asyncDaemon = CompletableDeferred<MullvadDaemon>()
+ private val asyncConnectivityListener = CompletableDeferred<ConnectivityListener>()
+
+ val daemon = service.daemon
+ val connectionProxy = service.connectionProxy
+ val connectivityListener = service.connectivityListener
+
+ val appVersionInfoCache = AppVersionInfoCache(mainActivity, asyncDaemon)
+ val keyStatusListener = KeyStatusListener(asyncDaemon)
+ val settingsListener = SettingsListener(asyncDaemon)
+ val accountCache = AccountCache(settingsListener, asyncDaemon)
+ var relayListListener = RelayListListener(asyncDaemon, settingsListener)
+ val locationInfoCache =
+ LocationInfoCache(asyncDaemon, asyncConnectivityListener, relayListListener)
+ val wwwAuthTokenRetriever = WwwAuthTokenRetriever(asyncDaemon)
+
+ init {
+ asyncDaemon.complete(daemon)
+ asyncConnectivityListener.complete(connectivityListener)
+
+ connectionProxy.mainActivity = mainActivity
+ }
+}