diff options
| author | 2014-09-03 12:51:26 +0200 | |
|---|---|---|
| committer | 2014-09-03 18:29:23 +0200 | |
| commit | 1492116a1cf44941ee2c8be68f6df6c14cfd39c5 (patch) | |
| tree | 193e415ea7b980c914c6b08c7f2df68621626335 | |
| parent | 09cfeaff8e0c744085f0d068e41ad59f2639907f (diff) | |
SysUI: Upsort PRIORITY_MAX system notifications
Bug: 17131219
Change-Id: Id29ef5c44a8221d514ea0a8cf5d0fe5dd179744b
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java index 454041c8450a..844e7ef3b254 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java @@ -99,15 +99,26 @@ public class NotificationData { @Override public int compare(Entry a, Entry b) { - String mediaNotification = mEnvironment.getCurrentMediaNotificationKey(); - // Upsort current media notification. + String mediaNotification = mEnvironment.getCurrentMediaNotificationKey(); boolean aMedia = a.key.equals(mediaNotification); boolean bMedia = b.key.equals(mediaNotification); if (aMedia != bMedia) { return aMedia ? -1 : 1; } + final StatusBarNotification na = a.notification; + final StatusBarNotification nb = b.notification; + + // Upsort PRIORITY_MAX system notifications + boolean aSystemMax = na.getNotification().priority >= Notification.PRIORITY_MAX && + isSystemNotification(na); + boolean bSystemMax = nb.getNotification().priority >= Notification.PRIORITY_MAX && + isSystemNotification(nb); + if (aSystemMax != bSystemMax) { + return aSystemMax ? -1 : 1; + } + // RankingMap as received from NoMan. if (mRankingMap != null) { mRankingMap.getRanking(a.key, mRankingA); @@ -115,8 +126,6 @@ public class NotificationData { return mRankingA.getRank() - mRankingB.getRank(); } - final StatusBarNotification na = a.notification; - final StatusBarNotification nb = b.notification; int d = nb.getScore() - na.getScore(); if (a.interruption != b.interruption) { return a.interruption ? -1 : 1; @@ -296,6 +305,11 @@ public class NotificationData { pw.println(" tickerText=\"" + n.getNotification().tickerText + "\""); } + private static boolean isSystemNotification(StatusBarNotification sbn) { + String sbnPackage = sbn.getPackageName(); + return "android".equals(sbnPackage) || "com.android.systemui".equals(sbnPackage); + } + /** * Provides access to keyguard state and user settings dependent data. */ |