Fix plugin setup pending intent background permission

This commit is contained in:
MM20 2024-02-20 22:03:23 +01:00
parent 1e17e93301
commit 01ea2a2862
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 23 additions and 2 deletions

View File

@ -48,6 +48,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
import coil.compose.AsyncImage
import de.mm20.launcher2.crashreporter.CrashReporter
import de.mm20.launcher2.ktx.sendWithBackgroundPermission
import de.mm20.launcher2.plugin.PluginState
import de.mm20.launcher2.plugin.PluginType
import de.mm20.launcher2.ui.R
@ -312,7 +313,7 @@ fun PluginSettingsScreen(pluginId: String) {
primaryAction = {
TextButton(onClick = {
try {
state.setupActivity.send()
state.setupActivity.sendWithBackgroundPermission()
} catch (e: PendingIntent.CanceledException) {
CrashReporter.logException(e)
}
@ -362,7 +363,7 @@ fun PluginSettingsScreen(pluginId: String) {
primaryAction = {
TextButton(onClick = {
try {
state.setupActivity.send()
state.setupActivity.sendWithBackgroundPermission()
} catch (e: PendingIntent.CanceledException) {
CrashReporter.logException(e)
}

View File

@ -0,0 +1,20 @@
package de.mm20.launcher2.ktx
import android.app.ActivityOptions
import android.app.PendingIntent
fun PendingIntent.sendWithBackgroundPermission() {
if (isAtLeastApiLevel(34)) {
val options = ActivityOptions.makeBasic()
.setPendingIntentCreatorBackgroundActivityStartMode(
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED
)
.setPendingIntentBackgroundActivityStartMode(
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED
)
.toBundle()
send(options)
} else {
send()
}
}