diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-23 14:15:01 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-29 11:13:16 +0000 |
| commit | c35ff9a568248c2c8db299fea48dd3eeb6bcd60c (patch) | |
| tree | 9228dfbec7bd8e3219e1817ba4b00481558f11df /android | |
| parent | 570aa1f3aa328fb330a500630698604b7b5204c8 (diff) | |
| download | mullvadvpn-c35ff9a568248c2c8db299fea48dd3eeb6bcd60c.tar.xz mullvadvpn-c35ff9a568248c2c8db299fea48dd3eeb6bcd60c.zip | |
Move VPN permission to `ConnectionProxy`
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 15 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt | 6 |
2 files changed, 9 insertions, 12 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index ffc11354ff..e2d3cc8f4d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -32,8 +32,6 @@ import net.mullvad.mullvadvpn.relaylist.RelayItem import net.mullvad.mullvadvpn.relaylist.RelayList class MainActivity : FragmentActivity() { - private var vpnPermission: CompletableDeferred<Boolean>? = null - var daemon = CompletableDeferred<MullvadDaemon>() private set var service = CompletableDeferred<MullvadVpnService.LocalBinder>() @@ -93,9 +91,9 @@ class MainActivity : FragmentActivity() { override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { if (resultCode == Activity.RESULT_OK) { - vpnPermission?.complete(true) + connectionProxy.vpnPermission.complete(true) } else { - vpnPermission?.complete(false) + connectionProxy.vpnPermission.complete(false) } } @@ -136,19 +134,14 @@ class MainActivity : FragmentActivity() { } } - fun requestVpnPermission(): Deferred<Boolean> { + fun requestVpnPermission() { val intent = VpnService.prepare(this) - val request = CompletableDeferred<Boolean>() - - vpnPermission = request if (intent != null) { startActivityForResult(intent, 0) } else { - request.complete(true) + connectionProxy.vpnPermission.complete(true) } - - return request } 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 26abe8a106..aa2ac474d4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.dataproxy import kotlinx.coroutines.launch +import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job @@ -40,11 +41,14 @@ class ConnectionProxy(val parentActivity: MainActivity) { value?.invoke(uiState) } + var vpnPermission = CompletableDeferred<Boolean>() + fun connect() { if (anticipateConnectingState()) { cancelActiveAction() - val vpnPermission = parentActivity.requestVpnPermission() + vpnPermission = CompletableDeferred() + parentActivity.requestVpnPermission() activeAction = GlobalScope.launch(Dispatchers.Default) { if (vpnPermission.await()) { |
