summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-26 18:59:52 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-27 13:31:33 +0000
commita7d2b1dfabeb01df5695ec0e9c203a5b09470ab1 (patch)
tree41b86f9f0b05f36910a8a23cdcf8d650e6bc2a70 /android
parent67c7c58b8f1b7f83f330250eb3aae20ccb6f5760 (diff)
downloadmullvadvpn-a7d2b1dfabeb01df5695ec0e9c203a5b09470ab1.tar.xz
mullvadvpn-a7d2b1dfabeb01df5695ec0e9c203a5b09470ab1.zip
Ignore (dis)connect commands when device is locked
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt17
1 files changed, 12 insertions, 5 deletions
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 132517fe9f..404d7913af 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -1,5 +1,7 @@
package net.mullvad.mullvadvpn.service
+import android.app.KeyguardManager
+import android.content.Context
import android.content.Intent
import android.net.VpnService
import android.os.Binder
@@ -40,6 +42,7 @@ class MullvadVpnService : TalpidVpnService() {
}
}
+ private lateinit var keyguardManager: KeyguardManager
private lateinit var notificationManager: ForegroundNotificationManager
private lateinit var tunnelStateUpdater: TunnelStateUpdater
@@ -67,6 +70,7 @@ class MullvadVpnService : TalpidVpnService() {
override fun onCreate() {
super.onCreate()
+ keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
notificationManager = ForegroundNotificationManager(this, serviceNotifier)
tunnelStateUpdater = TunnelStateUpdater(this, serviceNotifier)
@@ -75,12 +79,15 @@ 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 (action == VpnService.SERVICE_INTERFACE || action == KEY_CONNECT_ACTION) {
- pendingAction = PendingAction.Connect
- } else if (action == KEY_DISCONNECT_ACTION) {
- pendingAction = PendingAction.Disconnect
+ if (!keyguardManager.isDeviceLocked) {
+ val action = intent?.action
+
+ if (action == VpnService.SERVICE_INTERFACE || action == KEY_CONNECT_ACTION) {
+ pendingAction = PendingAction.Connect
+ } else if (action == KEY_DISCONNECT_ACTION) {
+ pendingAction = PendingAction.Disconnect
+ }
}
return startResult