diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-23 18:03:46 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-29 11:13:16 +0000 |
| commit | f9b820e512511fa64243305f54cb880271f528f9 (patch) | |
| tree | ec0d3d14609036059831116ef5a2c08327b5cb3e /android/src/main | |
| parent | c35ff9a568248c2c8db299fea48dd3eeb6bcd60c (diff) | |
| download | mullvadvpn-f9b820e512511fa64243305f54cb880271f528f9.tar.xz mullvadvpn-f9b820e512511fa64243305f54cb880271f528f9.zip | |
Move VPN intent generation to `ConnectionProxy`
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 11 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt | 17 |
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() |
