diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-30 17:46:05 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-11 13:36:09 +0000 |
| commit | cac7c01447b7e91acd72900f35a3610db36785cc (patch) | |
| tree | 4219ecbfbf08a86ae3215199ce5c86831f7995d3 /android/src/main | |
| parent | 2db0a478361507f9121a3e69801dcc1f16d34ae5 (diff) | |
| download | mullvadvpn-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.kt | 15 |
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() |
