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

Commit 6f922cbe authored by Daniel Sandler's avatar Daniel Sandler Committed by Android (Google) Code Review
Browse files

Merge "Implement priority ordering in notifications." into honeycomb

parents ed2c5133 a31e4190
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -35,12 +35,18 @@ if (truncatedTicker != null && truncatedTicker.length() > maxTickerLen) {
*/

public class StatusBarNotification implements Parcelable {
    public static int PRIORITY_JIFFY_EXPRESS = -100;
    public static int PRIORITY_NORMAL        = 0;
    public static int PRIORITY_ONGOING       = 100;
    public static int PRIORITY_SYSTEM        = 200;

    public String pkg;
    public int id;
    public String tag;
    public int uid;
    public int initialPid;
    public Notification notification;
    public int priority = PRIORITY_NORMAL;

    public StatusBarNotification() {
    }
@@ -56,6 +62,9 @@ public class StatusBarNotification implements Parcelable {
        this.uid = uid;
        this.initialPid = initialPid;
        this.notification = notification;

        this.priority = ((notification.flags & Notification.FLAG_ONGOING_EVENT) != 0)
            ? PRIORITY_ONGOING : PRIORITY_NORMAL;
    }

    public StatusBarNotification(Parcel in) {
@@ -72,6 +81,7 @@ public class StatusBarNotification implements Parcelable {
        }
        this.uid = in.readInt();
        this.initialPid = in.readInt();
        this.priority = in.readInt();
        this.notification = new Notification(in);
    }

@@ -86,6 +96,7 @@ public class StatusBarNotification implements Parcelable {
        }
        out.writeInt(this.uid);
        out.writeInt(this.initialPid);
        out.writeInt(this.priority);
        this.notification.writeToParcel(out, flags);
    }

@@ -114,7 +125,7 @@ public class StatusBarNotification implements Parcelable {

    public String toString() {
        return "StatusBarNotification(package=" + pkg + " id=" + id + " tag=" + tag
                + " notification=" + notification + ")";
                + " notification=" + notification + " priority=" + priority + ")";
    }

    public boolean isOngoing() {
+6 −1
Original line number Diff line number Diff line
@@ -48,7 +48,12 @@ public class NotificationData {
    private final ArrayList<Entry> mEntries = new ArrayList<Entry>();
    private final Comparator<Entry> mEntryCmp = new Comparator<Entry>() {
        public int compare(Entry a, Entry b) {
            return (int)(a.notification.notification.when - b.notification.notification.when);
            final StatusBarNotification na = a.notification;
            final StatusBarNotification nb = b.notification;
            int priDiff = na.priority - nb.priority;
            return (priDiff != 0)
                ? priDiff
                : (int)(na.notification.when - nb.notification.when);
        }
    };

+7 −3
Original line number Diff line number Diff line
@@ -670,7 +670,8 @@ public class TabletStatusBar extends StatusBar implements
                && oldContentView.getLayoutId() == contentView.getLayoutId();
        ViewGroup rowParent = (ViewGroup) oldEntry.row.getParent();
        boolean orderUnchanged = notification.notification.when==oldNotification.notification.when
                && notification.isOngoing() == oldNotification.isOngoing();
                && notification.priority == oldNotification.priority; 
                // priority now encompasses isOngoing()
        boolean isLastAnyway = rowParent.indexOfChild(oldEntry.row) == rowParent.getChildCount()-1;
        if (contentsUnchanged && (orderUnchanged || isLastAnyway)) {
            if (DEBUG) Slog.d(TAG, "reusing notification for key: " + key);
@@ -1187,7 +1188,10 @@ public class TabletStatusBar extends StatusBar implements
        }

        // Add the icon.
        mNotns.add(entry);
        int pos = mNotns.add(entry);
        if (DEBUG) {
            Slog.d(TAG, "addNotificationViews: added at " + pos);
        }
        updateNotificationIcons();

        return iconView;
@@ -1274,7 +1278,7 @@ public class TabletStatusBar extends StatusBar implements
        for (int i=0; i<toShow.size(); i++) {
            View v = toShow.get(i);
            if (v.getParent() == null) {
                mPile.addView(toShow.get(i));
                mPile.addView(v, N-1-i); // the notification panel has newest at the bottom
            }
        }