Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 038839e9 authored by Christoph Studer's avatar Christoph Studer Committed by Android (Google) Code Review
Browse files

Merge "SysUI: Upsort PRIORITY_MAX system notifications" into lmp-dev

parents 9a245b5d 1492116a
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -100,15 +100,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);
@@ -116,8 +127,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;
@@ -305,6 +314,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.
     */