diff options
| -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()) { |
