diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-24 20:32:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-27 10:59:46 +0000 |
| commit | 7c0a1b1c97c94751022173ebf99da663aef89e80 (patch) | |
| tree | a0538e928f5f9f6be4415dbd4f1e20b6bceee972 | |
| parent | ddfcfa3f536a0227653189ae402f17190c1a2ee4 (diff) | |
| download | mullvadvpn-7c0a1b1c97c94751022173ebf99da663aef89e80.tar.xz mullvadvpn-7c0a1b1c97c94751022173ebf99da663aef89e80.zip | |
Auto-generate Wireguard key in `ConnectFragment`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt index 11bfabe912..58e7ef0ed1 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt @@ -26,6 +26,7 @@ class ConnectFragment : Fragment() { private lateinit var daemon: Deferred<MullvadDaemon> private var attachListenerJob: Job? = null + private var generateWireguardKeyJob: Job? = null private var updateViewJob: Job? = null override fun onAttach(context: Context) { @@ -57,6 +58,7 @@ class ConnectFragment : Fragment() { } attachListenerJob = attachListener() + generateWireguardKeyJob = generateWireguardKey() return view } @@ -65,6 +67,7 @@ class ConnectFragment : Fragment() { override fun onDestroyView() { attachListenerJob?.cancel() detachListener() + generateWireguardKeyJob?.cancel() updateViewJob?.cancel() super.onDestroyView() } @@ -77,6 +80,15 @@ class ConnectFragment : Fragment() { daemon.await().onTunnelStateChange = null } + private fun generateWireguardKey() = GlobalScope.launch(Dispatchers.Default) { + val daemon = this@ConnectFragment.daemon.await() + val key = daemon.getWireguardKey() + + if (key == null) { + daemon.generateWireguardKey() + } + } + private fun connect() = GlobalScope.launch(Dispatchers.Default) { daemon.await().connect() } |
