summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src
diff options
context:
space:
mode:
author Lyn Han <lynhan@google.com> 2025-03-24 13:12:40 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-24 13:12:40 -0700
commit815fdd8475cf205bf81f7c17db2c0b7e306fbe0b (patch)
tree92cb9339cddac9fcbfdd98ac6b87e5c5d8bdb5e9 /packages/SystemUI/src
parent1d34ea3817f5bba0336c4b60c552e2d3331aeec8 (diff)
parente5f4c3af2001358076b2f0bd32a72e03967fd252 (diff)
Merge "Update all non-bundle sectioners to check isClassified" into main
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleUtil.kt43
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/Coordinator.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java15
7 files changed, 79 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleUtil.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleUtil.kt
new file mode 100644
index 000000000000..47889c9c9429
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleUtil.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.coordinator
+
+import android.app.NotificationChannel.SYSTEM_RESERVED_IDS
+import com.android.systemui.statusbar.notification.collection.NotificationClassificationFlag
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
+
+/**
+ * Helper class for classified notifications.
+ */
+class BundleUtil {
+ companion object {
+ fun isClassified(pipelineEntry: PipelineEntry): Boolean {
+ if (pipelineEntry !is NotificationEntry) {
+ return false
+ }
+ if (pipelineEntry.getRepresentativeEntry()!!.channel == null) {
+ return false
+ }
+ val channelId = pipelineEntry.getRepresentativeEntry()!!.channel.id
+ if (SYSTEM_RESERVED_IDS.contains(channelId)) {
+ return true
+ }
+ return false
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
index c8ec85d0a227..b125e47b115c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
@@ -97,11 +97,14 @@ public class ColorizedFgsCoordinator implements Coordinator {
NotificationPriorityBucketKt.BUCKET_FOREGROUND_SERVICE) {
@Override
public boolean isInSection(PipelineEntry entry) {
- NotificationEntry notificationEntry = entry.getRepresentativeEntry();
- if (notificationEntry != null) {
- return isRichOngoing(notificationEntry) || isPromotedNotifChip(notificationEntry);
+ NotificationEntry notifEntry = entry.getRepresentativeEntry();
+ if (notifEntry == null) {
+ return false;
}
- return false;
+ if (BundleUtil.Companion.isClassified(notifEntry)) {
+ return false;
+ }
+ return isRichOngoing(notifEntry) || isPromotedNotifChip(notifEntry);
}
/** get the sort key for any entry in the ongoing section */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
index 28923b0ab71e..cc7e329068c8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
@@ -16,7 +16,6 @@
package com.android.systemui.statusbar.notification.collection.coordinator
-import android.app.NotificationChannel.SYSTEM_RESERVED_IDS
import com.android.systemui.statusbar.notification.collection.GroupEntry
import com.android.systemui.statusbar.notification.collection.PipelineEntry
import com.android.systemui.statusbar.notification.collection.NotifPipeline
@@ -89,21 +88,24 @@ class ConversationCoordinator @Inject constructor(
val priorityPeopleSectioner =
object : NotifSectioner("Priority People", BUCKET_PRIORITY_PEOPLE) {
override fun isInSection(entry: PipelineEntry): Boolean {
+ if (BundleUtil.isClassified(entry)) {
+ return false
+ }
return getPeopleType(entry) == TYPE_IMPORTANT_PERSON
- && entry.representativeEntry?.channel?.id !in SYSTEM_RESERVED_IDS
}
}
// TODO(b/330193582): Rename to just "People"
val peopleAlertingSectioner = object : NotifSectioner("People(alerting)", BUCKET_PEOPLE) {
override fun isInSection(entry: PipelineEntry): Boolean {
+ if (BundleUtil.isClassified(entry)) {
+ return false
+ }
if (SortBySectionTimeFlag.isEnabled) {
return (highPriorityProvider.isHighPriorityConversation(entry)
|| isConversation(entry))
- && entry.representativeEntry?.channel?.id !in SYSTEM_RESERVED_IDS
} else {
return highPriorityProvider.isHighPriorityConversation(entry)
- && entry.representativeEntry?.channel?.id !in SYSTEM_RESERVED_IDS
}
}
@@ -119,8 +121,10 @@ class ConversationCoordinator @Inject constructor(
// that are alerting. All remaining conversations must be silent.
override fun isInSection(entry: PipelineEntry): Boolean {
SortBySectionTimeFlag.assertInLegacyMode()
+ if (BundleUtil.isClassified(entry)) {
+ return false
+ }
return isConversation(entry)
- && entry.representativeEntry?.channel?.id !in SYSTEM_RESERVED_IDS
}
override fun getComparator(): NotifComparator {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/Coordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/Coordinator.java
index 23570728d27c..f5ba7545dd1d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/Coordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/Coordinator.java
@@ -16,11 +16,12 @@
package com.android.systemui.statusbar.notification.collection.coordinator;
+import static android.app.NotificationChannel.SYSTEM_RESERVED_IDS;
+
import androidx.annotation.NonNull;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable;
-
/**
* Interface for registering callbacks to the {@link NotifPipeline}.
*/
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
index a40a2285d8a2..ed82c3d402ef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
@@ -916,9 +916,13 @@ constructor(
val sectioner =
object : NotifSectioner("HeadsUp", BUCKET_HEADS_UP) {
- override fun isInSection(entry: PipelineEntry): Boolean =
+ override fun isInSection(entry: PipelineEntry): Boolean {
+ if (BundleUtil.isClassified(entry)) {
+ return false
+ }
// TODO: This check won't notice if a child of the group is going to HUN...
- isGoingToShowHunNoRetract(entry)
+ return isGoingToShowHunNoRetract(entry)
+ }
override fun getComparator(): NotifComparator {
return object : NotifComparator("HeadsUp") {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
index d542e67e665a..3a8a68522409 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
@@ -229,6 +229,7 @@ constructor(
override fun isInSection(entry: PipelineEntry): Boolean {
if (NotificationMinimalism.isUnexpectedlyInLegacyMode()) return false
if (!minimalismEnabled) return false
+ if (BundleUtil.isClassified(entry)) return false
return entry.anyEntry { notificationEntry ->
seenNotificationsInteractor.isTopOngoingNotification(notificationEntry)
}
@@ -240,6 +241,7 @@ constructor(
override fun isInSection(entry: PipelineEntry): Boolean {
if (NotificationMinimalism.isUnexpectedlyInLegacyMode()) return false
if (!minimalismEnabled) return false
+ if (BundleUtil.isClassified(entry)) return false
return entry.anyEntry { notificationEntry ->
seenNotificationsInteractor.isTopUnseenNotification(notificationEntry)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
index cda535de86c4..661734a7ac96 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
@@ -101,11 +101,10 @@ public class RankingCoordinator implements Coordinator {
NotificationPriorityBucketKt.BUCKET_ALERTING) {
@Override
public boolean isInSection(PipelineEntry entry) {
- return mHighPriorityProvider.isHighPriority(entry)
- && entry.getRepresentativeEntry() != null
- && entry.getRepresentativeEntry().getChannel() != null
- && !SYSTEM_RESERVED_IDS.contains(
- entry.getRepresentativeEntry().getChannel().getId());
+ if (BundleUtil.Companion.isClassified(entry)) {
+ return false;
+ }
+ return mHighPriorityProvider.isHighPriority(entry);
}
@Nullable
@@ -126,6 +125,9 @@ public class RankingCoordinator implements Coordinator {
if (entry instanceof BundleEntry) {
return true;
}
+ if (BundleUtil.Companion.isClassified(entry)) {
+ return false;
+ }
return !mHighPriorityProvider.isHighPriority(entry)
&& entry.getRepresentativeEntry() != null
&& !entry.getRepresentativeEntry().isAmbient();
@@ -161,6 +163,9 @@ public class RankingCoordinator implements Coordinator {
NotificationPriorityBucketKt.BUCKET_SILENT) {
@Override
public boolean isInSection(PipelineEntry entry) {
+ if (BundleUtil.Companion.isClassified(entry)) {
+ return false;
+ }
return !mHighPriorityProvider.isHighPriority(entry)
&& entry.getRepresentativeEntry() != null
&& entry.getRepresentativeEntry().isAmbient();