diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-04 17:11:46 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-04 17:11:46 -0300 |
| commit | 635e67bbb68fff7fd2ac1294b294892379488893 (patch) | |
| tree | 238a215d9d26b17952a54aaeefb5330a1fa546c5 | |
| parent | 2e3d52901f7304387c18ce28cecba06f5d8af5f0 (diff) | |
| parent | 684902e017b1da7382fb0bacc928cc4b90267c82 (diff) | |
| download | mullvadvpn-635e67bbb68fff7fd2ac1294b294892379488893.tar.xz mullvadvpn-635e67bbb68fff7fd2ac1294b294892379488893.zip | |
Merge branch 'fix-start-service-crash'
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() { |
