summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-04 17:11:46 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-04 17:11:46 -0300
commit635e67bbb68fff7fd2ac1294b294892379488893 (patch)
tree238a215d9d26b17952a54aaeefb5330a1fa546c5
parent2e3d52901f7304387c18ce28cecba06f5d8af5f0 (diff)
parent684902e017b1da7382fb0bacc928cc4b90267c82 (diff)
downloadmullvadvpn-635e67bbb68fff7fd2ac1294b294892379488893.tar.xz
mullvadvpn-635e67bbb68fff7fd2ac1294b294892379488893.zip
Merge branch 'fix-start-service-crash'
-rw-r--r--CHANGELOG.md1
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt9
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt7
3 files changed, 14 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e24130729c..6d52444ef5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -48,6 +48,7 @@ Line wrap the file at 100 chars. Th
- Fix crash that sometimes happens right after some other unrelated crash.
- Fix app not connecting when pressing the notification or quick-settings tile when the service
isn't running. It would previously just open the app UI and stay in the disconnected state.
+- Fix crash when requesting to connect from notification or quick-settings tile.
## [2020.4-beta3] - 2020-04-29
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
index 97a7e6b99e..bae29762e6 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
@@ -265,8 +265,13 @@ class ForegroundNotificationManager(
private fun buildTunnelAction(): NotificationCompat.Action {
val intent = Intent(tunnelActionKey).setPackage("net.mullvad.mullvadvpn")
- val pendingIntent =
- PendingIntent.getBroadcast(service, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)
+ val flags = PendingIntent.FLAG_UPDATE_CURRENT
+
+ val pendingIntent = if (Build.VERSION.SDK_INT >= 26) {
+ PendingIntent.getForegroundService(service, 1, intent, flags)
+ } else {
+ PendingIntent.getService(service, 1, intent, flags)
+ }
val icon = tunnelActionIcon
val label = service.getString(tunnelActionText)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt
index 296b324332..4a9562c6ec 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadTileService.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.service
import android.content.Intent
import android.graphics.drawable.Icon
+import android.os.Build
import android.service.quicksettings.Tile
import android.service.quicksettings.TileService
import net.mullvad.mullvadvpn.R
@@ -61,7 +62,11 @@ class MullvadTileService : TileService() {
intent.action = KEY_CONNECT_ACTION
}
- startService(intent)
+ if (Build.VERSION.SDK_INT >= 26) {
+ startForegroundService(intent)
+ } else {
+ startService(intent)
+ }
}
override fun onStopListening() {