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

Commit a2e82d4c authored by Daniel Sandler's avatar Daniel Sandler Committed by Android Git Automerger
Browse files

am 6f922cbe: Merge "Implement priority ordering in notifications." into honeycomb

* commit '6f922cbe':
  Implement priority ordering in notifications.
parents 3f9a851e 6f922cbe
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
            }
        }