diff --git a/services/core/java/com/android/server/notification/NotificationComparator.java b/services/core/java/com/android/server/notification/NotificationComparator.java index 5e4703d7d34b2..7dff2c1bdd23e 100644 --- a/services/core/java/com/android/server/notification/NotificationComparator.java +++ b/services/core/java/com/android/server/notification/NotificationComparator.java @@ -28,10 +28,11 @@ public class NotificationComparator final int leftImportance = left.getImportance(); final int rightImportance = right.getImportance(); if (leftImportance != rightImportance) { - // by priority, high to low + // by importance, high to low return -1 * Integer.compare(leftImportance, rightImportance); } + // Whether or not the notification can bypass DND. final int leftPackagePriority = left.getPackagePriority(); final int rightPackagePriority = right.getPackagePriority(); if (leftPackagePriority != rightPackagePriority) { @@ -39,6 +40,13 @@ public class NotificationComparator return -1 * Integer.compare(leftPackagePriority, rightPackagePriority); } + final int leftPriority = left.sbn.getNotification().priority; + final int rightPriority = right.sbn.getNotification().priority; + if (leftPriority != rightPriority) { + // by priority, high to low + return -1 * Integer.compare(leftPriority, rightPriority); + } + final float leftPeople = left.getContactAffinity(); final float rightPeople = right.getContactAffinity(); if (leftPeople != rightPeople) {