diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-11 11:58:12 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-11 11:58:12 -0300 |
| commit | efee31b9090853a2b0864737a38f90195623ba98 (patch) | |
| tree | 4219ecbfbf08a86ae3215199ce5c86831f7995d3 /android | |
| parent | 14d227892a2e5de8045ec185188a69ad7ada8813 (diff) | |
| parent | cac7c01447b7e91acd72900f35a3610db36785cc (diff) | |
| download | mullvadvpn-efee31b9090853a2b0864737a38f90195623ba98.tar.xz mullvadvpn-efee31b9090853a2b0864737a38f90195623ba98.zip | |
Merge branch 'fetch-current-tunnel-state'
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 15 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 1 |
2 files changed, 15 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() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt index ff3abeea80..5dd6401615 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt @@ -21,6 +21,7 @@ class MullvadDaemon(val vpnService: MullvadVpnService) { external fun getAccountData(accountToken: String): AccountData? external fun getRelayLocations(): RelayList external fun getSettings(): Settings + external fun getState(): TunnelStateTransition external fun getWireguardKey(): PublicKey? external fun setAccount(accountToken: String?) external fun updateRelaySettings(update: RelaySettingsUpdate) |
