diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 21 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 2 |
2 files changed, 23 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 bbe43ede29..8d7abfd24e 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt @@ -1,5 +1,11 @@ package net.mullvad.mullvadvpn +import kotlinx.coroutines.launch +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope + +import android.content.Context import android.os.Bundle import android.os.Handler import android.support.v4.app.Fragment @@ -15,6 +21,7 @@ class ConnectFragment : Fragment() { private lateinit var status: ConnectionStatus private lateinit var connectHandler: Handler + private lateinit var daemon: Deferred<MullvadDaemon> private var state = ConnectionState.Disconnected set(value) { @@ -26,6 +33,12 @@ class ConnectFragment : Fragment() { field = value } + override fun onAttach(context: Context) { + super.onAttach(context) + + daemon = (context as MainActivity).asyncDaemon + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -60,12 +73,20 @@ class ConnectFragment : Fragment() { private fun connect() { state = ConnectionState.Connecting + GlobalScope.launch(Dispatchers.Default) { + daemon.await().connect() + } + connectHandler.postDelayed(Runnable { connected() }, 1000) } private fun disconnect() { state = ConnectionState.Disconnected + GlobalScope.launch(Dispatchers.Default) { + daemon.await().disconnect() + } + connectHandler.removeCallbacksAndMessages(null) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt index 6d084e6274..e95a761ba5 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt @@ -11,6 +11,8 @@ class MullvadDaemon { initialize() } + external fun connect() + external fun disconnect() external fun getAccountData(accountToken: String): AccountData? external fun getRelayLocations(): RelayList external fun getSettings(): Settings |
