diff options
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationComparator.java | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationIntrusivenessExtractor.java | 14 |
2 files changed, 17 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationComparator.java b/services/core/java/com/android/server/notification/NotificationComparator.java index 63647ffa2193..8caaaa16d2a1 100644 --- a/services/core/java/com/android/server/notification/NotificationComparator.java +++ b/services/core/java/com/android/server/notification/NotificationComparator.java @@ -73,11 +73,13 @@ public class NotificationComparator // Next: sufficiently import person to person communication boolean leftPeople = isImportantPeople(left); boolean rightPeople = isImportantPeople(right); + final int contactAffinityComparison = + Float.compare(left.getContactAffinity(), right.getContactAffinity()); if (leftPeople && rightPeople){ // by contact proximity, close to far. if same proximity, check further fields. - if (Float.compare(left.getContactAffinity(), right.getContactAffinity()) != 0) { - return -1 * Float.compare(left.getContactAffinity(), right.getContactAffinity()); + if (contactAffinityComparison != 0) { + return -1 * contactAffinityComparison; } } else if (leftPeople != rightPeople) { // People, messaging higher than non-messaging @@ -91,6 +93,11 @@ public class NotificationComparator return -1 * Integer.compare(leftImportance, rightImportance); } + // by contact proximity, close to far. if same proximity, check further fields. + if (contactAffinityComparison != 0) { + return -1 * contactAffinityComparison; + } + // Whether or not the notification can bypass DND. final int leftPackagePriority = left.getPackagePriority(); final int rightPackagePriority = right.getPackagePriority(); diff --git a/services/core/java/com/android/server/notification/NotificationIntrusivenessExtractor.java b/services/core/java/com/android/server/notification/NotificationIntrusivenessExtractor.java index 31ed35022cc6..f92bf3dd4427 100644 --- a/services/core/java/com/android/server/notification/NotificationIntrusivenessExtractor.java +++ b/services/core/java/com/android/server/notification/NotificationIntrusivenessExtractor.java @@ -19,6 +19,7 @@ package com.android.server.notification; import android.app.Notification; import android.app.NotificationManager; import android.content.Context; +import android.net.Uri; import android.service.notification.NotificationListenerService; import android.util.Log; import android.util.Slog; @@ -46,12 +47,13 @@ public class NotificationIntrusivenessExtractor implements NotificationSignalExt } if (record.getImportance() >= NotificationManager.IMPORTANCE_DEFAULT) { - final Notification notification = record.getNotification(); - if ((notification.defaults & Notification.DEFAULT_VIBRATE) != 0 || - notification.vibrate != null || - (notification.defaults & Notification.DEFAULT_SOUND) != 0 || - notification.sound != null || - notification.fullScreenIntent != null) { + if (record.getSound() != null && record.getSound() != Uri.EMPTY) { + record.setRecentlyIntrusive(true); + } + if (record.getVibration() != null) { + record.setRecentlyIntrusive(true); + } + if (record.getNotification().fullScreenIntent != null) { record.setRecentlyIntrusive(true); } } |