Allow launch activity from background for PendingIntent

BUG: 343317785
Test: local test
Flag: com.android.settings.flags.enable_bluetooth_device_details_polish
Change-Id: I22c430c0d3879f034f3a491471781aa9b49a02f2
This commit is contained in:
Haijie Hong
2024-10-31 16:16:45 +08:00
parent 75e2dc4b21
commit 6852925676

View File

@@ -16,6 +16,7 @@
package com.android.settings.bluetooth.ui.view
import android.app.ActivityOptions
import android.bluetooth.BluetoothAdapter
import android.content.Context
import android.content.Intent
@@ -206,25 +207,21 @@ class DeviceDetailsFragmentFormatterImpl(
.collectAsStateWithLifecycle(initialValue = false)
val settings = contents
AnimatedVisibility(
visible = settings.isNotEmpty(),
enter = fadeIn(),
exit = fadeOut(),
) {
AnimatedVisibility(visible = settings.isNotEmpty(), enter = fadeIn(), exit = fadeOut()) {
Box {
Box(
modifier =
Modifier.matchParentSize()
.padding(16.dp, 0.dp, 8.dp, 0.dp)
.background(
color =
if (highlighted) {
MaterialTheme.colorScheme.primaryContainer
} else {
Color.Transparent
},
shape = RoundedCornerShape(28.dp),
),
Modifier.matchParentSize()
.padding(16.dp, 0.dp, 8.dp, 0.dp)
.background(
color =
if (highlighted) {
MaterialTheme.colorScheme.primaryContainer
} else {
Color.Transparent
},
shape = RoundedCornerShape(28.dp),
)
) {}
buildPreferences(settings)
}
@@ -257,17 +254,11 @@ class DeviceDetailsFragmentFormatterImpl(
}
}
else -> {
if (
!settings.all {
it is DeviceSettingPreferenceModel.MultiTogglePreference
}
) {
if (!settings.all { it is DeviceSettingPreferenceModel.MultiTogglePreference }) {
return
}
buildMultiTogglePreference(
settings.filterIsInstance<
DeviceSettingPreferenceModel.MultiTogglePreference
>()
settings.filterIsInstance<DeviceSettingPreferenceModel.MultiTogglePreference>()
)
}
}
@@ -375,7 +366,12 @@ class DeviceDetailsFragmentFormatterImpl(
context.startActivity(action.intent)
}
is DeviceSettingActionModel.PendingIntentAction -> {
action.pendingIntent.send()
val options =
ActivityOptions.makeBasic()
.setPendingIntentBackgroundActivityStartMode(
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS
)
action.pendingIntent.send(options.toBundle())
}
}
}