summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-30 17:46:05 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-11 13:36:09 +0000
commitcac7c01447b7e91acd72900f35a3610db36785cc (patch)
tree4219ecbfbf08a86ae3215199ce5c86831f7995d3 /android/src/main
parent2db0a478361507f9121a3e69801dcc1f16d34ae5 (diff)
downloadmullvadvpn-cac7c01447b7e91acd72900f35a3610db36785cc.tar.xz
mullvadvpn-cac7c01447b7e91acd72900f35a3610db36785cc.zip
Fetch current state when `ConnectFragment` appears
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt15
1 files changed, 14 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
index b288ecfdbc..ae3194c5aa 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -32,6 +32,7 @@ class ConnectFragment : Fragment() {
private var daemon = CompletableDeferred<MullvadDaemon>()
private var vpnPermission = CompletableDeferred<Unit>()
+ private var fetchInitialStateJob = fetchInitialState()
private var generateWireguardKeyJob = generateWireguardKey()
private var activeAction: Job? = null
@@ -94,13 +95,25 @@ class ConnectFragment : Fragment() {
}
private fun attachListener() = GlobalScope.launch(Dispatchers.Default) {
- daemon.await().onTunnelStateChange = { state -> updateViewJob = updateView(state) }
+ daemon.await().onTunnelStateChange = { state ->
+ synchronized(this@ConnectFragment) {
+ updateViewJob = updateView(state)
+ }
+ }
}
private fun detachListener() = GlobalScope.launch(Dispatchers.Default) {
daemon.await().onTunnelStateChange = null
}
+ private fun fetchInitialState() = GlobalScope.launch(Dispatchers.Default) {
+ val state = daemon.await().getState()
+
+ synchronized(this@ConnectFragment) {
+ updateViewJob = updateViewJob ?: updateView(state)
+ }
+ }
+
private fun generateWireguardKey() = GlobalScope.launch(Dispatchers.Default) {
val daemon = this@ConnectFragment.daemon.await()
val key = daemon.getWireguardKey()