summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-31 19:30:56 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-31 19:33:56 +0000
commitd20dd34265a2661c662c19749c182f76eecc44ab (patch)
tree2ffc0a47681af9ff4c3107f4435a6e32c2234010
parent38ca3cc0a1c1230d589758820bb385be2d96edbd (diff)
downloadmullvadvpn-d20dd34265a2661c662c19749c182f76eecc44ab.tar.xz
mullvadvpn-d20dd34265a2661c662c19749c182f76eecc44ab.zip
Store service binder in `MainActivity`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt7
1 files changed, 7 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
index 2d129e3971..acfa68b502 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
@@ -36,6 +36,8 @@ class MainActivity : FragmentActivity() {
var daemon = CompletableDeferred<MullvadDaemon>()
private set
+ var service = CompletableDeferred<MullvadVpnService.LocalBinder>()
+ private set
var currentVersion = fetchCurrentVersion()
@@ -54,13 +56,18 @@ class MainActivity : FragmentActivity() {
override fun onServiceConnected(className: ComponentName, binder: IBinder) {
val localBinder = binder as MullvadVpnService.LocalBinder
+ service.complete(localBinder)
+
waitForDaemonJob = GlobalScope.launch(Dispatchers.Default) {
daemon.complete(localBinder.daemon.await())
}
}
override fun onServiceDisconnected(className: ComponentName) {
+ service.cancel()
daemon.cancel()
+
+ service = CompletableDeferred<MullvadVpnService.LocalBinder>()
daemon = CompletableDeferred<MullvadDaemon>()
}
}