Merge "Add Flags.DISABLE_FSI" into tm-qpr-dev

This commit is contained in:
Lyn Han
2023-01-19 19:55:19 +00:00
committed by Android (Google) Code Review
4 changed files with 20 additions and 0 deletions

View File

@@ -64,6 +64,10 @@ object Flags {
// TODO(b/259130119): Tracking Bug
val FSI_ON_DND_UPDATE = unreleasedFlag(259130119, "fsi_on_dnd_update", teamfood = true)
// TODO(b/265804648): Tracking Bug
@JvmField
val DISABLE_FSI = unreleasedFlag(265804648, "disable_fsi")
// TODO(b/254512538): Tracking Bug
val INSTANT_VOICE_REPLY = unreleasedFlag(111, "instant_voice_reply", teamfood = true)

View File

@@ -25,6 +25,10 @@ class NotifPipelineFlags @Inject constructor(
val context: Context,
val featureFlags: FeatureFlags
) {
init {
featureFlags.addListener(Flags.DISABLE_FSI) { event -> event.requestNoRestart() }
}
fun isDevLoggingEnabled(): Boolean =
featureFlags.isEnabled(Flags.NOTIFICATION_PIPELINE_DEVELOPER_LOGGING)
@@ -35,6 +39,8 @@ class NotifPipelineFlags @Inject constructor(
fun fsiOnDNDUpdate(): Boolean = featureFlags.isEnabled(Flags.FSI_ON_DND_UPDATE)
fun disableFsi(): Boolean = featureFlags.isEnabled(Flags.DISABLE_FSI)
val shouldFilterUnseenNotifsOnKeyguard: Boolean by lazy {
featureFlags.isEnabled(Flags.FILTER_UNSEEN_NOTIFS_ON_KEYGUARD)
}

View File

@@ -30,6 +30,10 @@ public interface NotificationInterruptStateProvider {
* the full screen intent should or shouldn't launch.
*/
enum FullScreenIntentDecision {
/**
* Full screen intents are disabled.
*/
NO_FSI_DISABLED(false),
/**
* No full screen intent included, so there is nothing to show.
*/

View File

@@ -236,6 +236,9 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter
@Override
public FullScreenIntentDecision getFullScreenIntentDecision(NotificationEntry entry) {
if (mFlags.disableFsi()) {
return FullScreenIntentDecision.NO_FSI_DISABLED;
}
if (entry.getSbn().getNotification().fullScreenIntent == null) {
return FullScreenIntentDecision.NO_FULL_SCREEN_INTENT;
}
@@ -325,6 +328,9 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter
final int uid = entry.getSbn().getUid();
final String packageName = entry.getSbn().getPackageName();
switch (decision) {
case NO_FSI_DISABLED:
mLogger.logNoFullscreen(entry, "Disabled");
return;
case NO_FULL_SCREEN_INTENT:
return;
case NO_FSI_SUPPRESSED_BY_DND: