diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt index be9e03306b..346c95222d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt @@ -35,7 +35,7 @@ class ServiceEndpoint( val messenger = Messenger(dispatcher) - val vpnPermission = VpnPermission(context) + val vpnPermission = VpnPermission(context, this) val connectionProxy = ConnectionProxy(vpnPermission, this) val settingsListener = SettingsListener(this) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt index 1c59a51cfe..50b5a606d4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt @@ -3,12 +3,19 @@ package net.mullvad.mullvadvpn.service.endpoint import android.content.Context import android.content.Intent import android.net.VpnService +import net.mullvad.mullvadvpn.ipc.Request import net.mullvad.mullvadvpn.ui.MainActivity import net.mullvad.mullvadvpn.util.Intermittent -class VpnPermission(private val context: Context) { +class VpnPermission(private val context: Context, endpoint: ServiceEndpoint) { private val isGranted = Intermittent<Boolean>() + init { + endpoint.dispatcher.registerHandler(Request.VpnPermissionResponse::class) { request -> + isGranted.spawnUpdate(request.isGranted) + } + } + suspend fun request(): Boolean { val intent = VpnService.prepare(context) @@ -28,8 +35,4 @@ class VpnPermission(private val context: Context) { return isGranted.await() } - - suspend fun grant(permission: Boolean) { - isGranted.update(permission) - } } |
