diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-26 18:59:52 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-27 13:31:33 +0000 |
| commit | a7d2b1dfabeb01df5695ec0e9c203a5b09470ab1 (patch) | |
| tree | 41b86f9f0b05f36910a8a23cdcf8d650e6bc2a70 /android | |
| parent | 67c7c58b8f1b7f83f330250eb3aae20ccb6f5760 (diff) | |
| download | mullvadvpn-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.kt | 17 |
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 |
