diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-10-03 18:46:41 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-10-05 12:32:42 +0000 |
| commit | df2c5877ab88adaa6787d50308c0d1ea467db934 (patch) | |
| tree | 00f6d08508cf058e1206af890ef3bd33c5ec7845 | |
| parent | 9dca1211e1e0c707b2ec59036b510c44872a6963 (diff) | |
| download | mullvadvpn-df2c5877ab88adaa6787d50308c0d1ea467db934.tar.xz mullvadvpn-df2c5877ab88adaa6787d50308c0d1ea467db934.zip | |
React to a start command with a quit action
| -rw-r--r-- | android/src/main/AndroidManifest.xml | 3 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 0093dbcb21..6295231f64 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -36,6 +36,9 @@ <intent-filter> <action android:name="net.mullvad.mullvadvpn.disconnect_action" /> </intent-filter> + <intent-filter> + <action android:name="net.mullvad.mullvadvpn.quit_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 5034d561a1..439216e897 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -28,6 +28,7 @@ class MullvadVpnService : TalpidVpnService() { val KEY_CONNECT_ACTION = "net.mullvad.mullvadvpn.connect_action" val KEY_DISCONNECT_ACTION = "net.mullvad.mullvadvpn.disconnect_action" + val KEY_QUIT_ACTION = "net.mullvad.mullvadvpn.quit_action" init { System.loadLibrary("mullvad_jni") @@ -99,6 +100,7 @@ class MullvadVpnService : TalpidVpnService() { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { Log.d(TAG, "Starting service") val startResult = super.onStartCommand(intent, flags, startId) + var quitCommand = false if (!keyguardManager.isDeviceLocked) { val action = intent?.action @@ -107,10 +109,13 @@ class MullvadVpnService : TalpidVpnService() { pendingAction = PendingAction.Connect } else if (action == KEY_DISCONNECT_ACTION) { pendingAction = PendingAction.Disconnect + } else if (action == KEY_QUIT_ACTION && !notificationManager.onForeground) { + quitCommand = true + stop() } } - if (shouldStop) { + if (shouldStop && !quitCommand) { shouldStop = false if (isStopping) { |
