summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-08-23 18:03:46 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-08-29 11:13:16 +0000
commitf9b820e512511fa64243305f54cb880271f528f9 (patch)
treeec0d3d14609036059831116ef5a2c08327b5cb3e /android/src
parentc35ff9a568248c2c8db299fea48dd3eeb6bcd60c (diff)
downloadmullvadvpn-f9b820e512511fa64243305f54cb880271f528f9.tar.xz
mullvadvpn-f9b820e512511fa64243305f54cb880271f528f9.zip
Move VPN intent generation to `ConnectionProxy`
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt11
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt17
2 files changed, 17 insertions, 11 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
index e2d3cc8f4d..8bb7b5945d 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
@@ -13,7 +13,6 @@ import android.app.Activity
import android.content.ComponentName
import android.content.Intent
import android.content.ServiceConnection
-import android.net.VpnService
import android.os.Bundle
import android.os.IBinder
import android.support.v4.app.FragmentActivity
@@ -134,14 +133,8 @@ class MainActivity : FragmentActivity() {
}
}
- fun requestVpnPermission() {
- val intent = VpnService.prepare(this)
-
- if (intent != null) {
- startActivityForResult(intent, 0)
- } else {
- connectionProxy.vpnPermission.complete(true)
- }
+ fun requestVpnPermission(intent: Intent) {
+ startActivityForResult(intent, 0)
}
fun quit() {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
index aa2ac474d4..3fb51c61c9 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt
@@ -1,5 +1,7 @@
package net.mullvad.mullvadvpn.dataproxy
+import android.net.VpnService
+
import kotlinx.coroutines.launch
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.Dispatchers
@@ -47,8 +49,7 @@ class ConnectionProxy(val parentActivity: MainActivity) {
if (anticipateConnectingState()) {
cancelActiveAction()
- vpnPermission = CompletableDeferred()
- parentActivity.requestVpnPermission()
+ requestVpnPermission()
activeAction = GlobalScope.launch(Dispatchers.Default) {
if (vpnPermission.await()) {
@@ -104,6 +105,18 @@ class ConnectionProxy(val parentActivity: MainActivity) {
}
}
+ private fun requestVpnPermission() {
+ val intent = VpnService.prepare(parentActivity)
+
+ vpnPermission = CompletableDeferred()
+
+ if (intent == null) {
+ vpnPermission.complete(true)
+ } else {
+ parentActivity.requestVpnPermission(intent)
+ }
+ }
+
private fun fetchInitialState() = GlobalScope.launch(Dispatchers.Default) {
val initialState = daemon.await().getState()