summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt21
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt2
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