summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-11 22:57:50 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-23 19:14:16 +0000
commit767d30dd34769568a2a7216dd686cc3e5c8d70ad (patch)
tree22eaafe48b8dbe1bc1d3aedbf3f509eaea2b25c9 /android/src
parent66a90465afa0320f76ac64804498713cc920cd4b (diff)
downloadmullvadvpn-767d30dd34769568a2a7216dd686cc3e5c8d70ad.tar.xz
mullvadvpn-767d30dd34769568a2a7216dd686cc3e5c8d70ad.zip
Handle connect/disconnect intents in the service
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/AndroidManifest.xml6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt7
2 files changed, 11 insertions, 2 deletions
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index cbd48f152e..668e3e772a 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -26,6 +26,12 @@
<intent-filter>
<action android:name="android.net.VpnService" />
</intent-filter>
+ <intent-filter>
+ <action android:name="net.mullvad.mullvadvpn.connect_action" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="net.mullvad.mullvadvpn.disconnect_action" />
+ </intent-filter>
</service>
<service android:name="net.mullvad.mullvadvpn.service.MullvadTileService"
android:label="@string/app_name"
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
index 70ee146590..20c2545e12 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -75,9 +75,12 @@ class MullvadVpnService : TalpidVpnService() {
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
val startResult = super.onStartCommand(intent, flags, startId)
+ val action = intent?.action
- if (intent?.getAction() == VpnService.SERVICE_INTERFACE) {
- shouldConnect = true
+ if (action == VpnService.SERVICE_INTERFACE || action == KEY_CONNECT_ACTION) {
+ pendingAction = PendingAction.Connect
+ } else if (action == KEY_DISCONNECT_ACTION) {
+ pendingAction = PendingAction.Disconnect
}
return startResult