summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-08 14:46:30 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-12 13:19:37 +0000
commit71e4553601f43b701ed0a2289ef4875b75fcb03e (patch)
treefcb1a7b7d4f4ed06e3b78772501e48dccec4022e
parent60359fff03fdba21ad32a31b38f8c453297bc518 (diff)
downloadmullvadvpn-71e4553601f43b701ed0a2289ef4875b75fcb03e.tar.xz
mullvadvpn-71e4553601f43b701ed0a2289ef4875b75fcb03e.zip
Handle `VpnPermissionResponse` requests
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/VpnPermission.kt13
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)
- }
}