Loading core/java/android/app/Notification.java +76 −48 Original line number Diff line number Diff line Loading @@ -25,15 +25,11 @@ import android.graphics.Bitmap; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; import android.os.UserHandle; import android.text.TextUtils; import android.util.IntProperty; import android.util.Log; import android.util.Slog; import android.util.TypedValue; import android.view.View; import android.widget.ProgressBar; Loading Loading @@ -436,8 +432,17 @@ public class Notification implements Parcelable * @hide */ public static final String EXTRA_PEOPLE = "android.people"; /** @hide */ public static final String EXTRA_TITLE = "android.title"; /** @hide */ public static final String EXTRA_TEXT = "android.text"; /** @hide */ public static final String EXTRA_SUBTEXT = "android.subtext"; /** @hide */ public static final String EXTRA_SMALL_ICON = "android.icon"; private Bundle extras; /** @hide */ public Bundle extras = new Bundle(); /** * Structure to encapsulate an "action", including title and icon, that can be attached to a Notification. Loading Loading @@ -589,11 +594,10 @@ public class Notification implements Parcelable kind = parcel.createStringArray(); // may set kind to null if (parcel.readInt() != 0) { extras = parcel.readBundle(); } extras = parcel.readBundle(); // may be null actions = parcel.createTypedArray(Action.CREATOR); // may be null actions = parcel.createTypedArray(Action.CREATOR); if (parcel.readInt() != 0) { bigContentView = RemoteViews.CREATOR.createFromParcel(parcel); } Loading @@ -602,7 +606,11 @@ public class Notification implements Parcelable @Override public Notification clone() { Notification that = new Notification(); cloneInto(that); return that; } private void cloneInto(Notification that) { that.when = this.when; that.icon = this.icon; that.number = this.number; Loading Loading @@ -656,15 +664,16 @@ public class Notification implements Parcelable } if (this.actions != null) { that.actions = new Action[this.actions.length]; for(int i=0; i<this.actions.length; i++) { that.actions[i] = this.actions[i].clone(); } } if (this.bigContentView != null) { that.bigContentView = this.bigContentView.clone(); } return that; } public int describeContents() { Loading Loading @@ -745,14 +754,9 @@ public class Notification implements Parcelable parcel.writeStringArray(kind); // ok for null if (extras != null) { parcel.writeInt(1); extras.writeToParcel(parcel, 0); } else { parcel.writeInt(0); } parcel.writeBundle(extras); // null ok parcel.writeTypedArray(actions, 0); parcel.writeTypedArray(actions, 0); // null ok if (bigContentView != null) { parcel.writeInt(1); Loading Loading @@ -800,35 +804,29 @@ public class Notification implements Parcelable @Deprecated public void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) { // TODO: rewrite this to use Builder RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification_template_base); if (this.icon != 0) { contentView.setImageViewResource(R.id.icon, this.icon); } if (priority < PRIORITY_LOW) { contentView.setInt(R.id.icon, "setBackgroundResource", R.drawable.notification_template_icon_low_bg); contentView.setInt(R.id.status_bar_latest_event_content, "setBackgroundResource", R.drawable.notification_bg_low); } Notification.Builder builder = new Notification.Builder(context); // First, ensure that key pieces of information that may have been set directly // are preserved builder.setWhen(this.when); builder.setSmallIcon(this.icon); builder.setPriority(this.priority); builder.setTicker(this.tickerText); builder.setNumber(this.number); builder.mFlags = this.flags; builder.setSound(this.sound, this.audioStreamType); builder.setDefaults(this.defaults); builder.setVibrate(this.vibrate); // now apply the latestEventInfo fields if (contentTitle != null) { contentView.setTextViewText(R.id.title, contentTitle); builder.setContentTitle(contentTitle); } if (contentText != null) { contentView.setTextViewText(R.id.text, contentText); builder.setContentText(contentText); } if (this.when != 0) { contentView.setViewVisibility(R.id.time, View.VISIBLE); contentView.setLong(R.id.time, "setTime", when); } if (this.number != 0) { NumberFormat f = NumberFormat.getIntegerInstance(); contentView.setTextViewText(R.id.info, f.format(this.number)); } this.contentView = contentView; this.contentIntent = contentIntent; builder.setContentIntent(contentIntent); builder.buildInto(this); } @Override Loading Loading @@ -1615,11 +1613,20 @@ public class Notification implements Parcelable n.kind = null; } n.priority = mPriority; n.extras = mExtras != null ? new Bundle(mExtras) : null; if (mActions.size() > 0) { n.actions = new Action[mActions.size()]; mActions.toArray(n.actions); } n.extras = mExtras != null ? new Bundle(mExtras) : new Bundle(); // Store original information used in the construction of this object n.extras.putCharSequence(EXTRA_TITLE, mContentTitle); n.extras.putCharSequence(EXTRA_TEXT, mContentText); n.extras.putCharSequence(EXTRA_SUBTEXT, mSubText); n.extras.putInt(EXTRA_SMALL_ICON, mSmallIcon); //n.extras.putByteArray(EXTRA_LARGE_ICON, ... return n; } Loading @@ -1642,6 +1649,16 @@ public class Notification implements Parcelable return buildUnstyled(); } } /** * Apply this Builder to an existing {@link Notification} object. * * @hide */ public Notification buildInto(Notification n) { build().cloneInto(n); return n; } } Loading Loading @@ -1882,6 +1899,9 @@ public class Notification implements Parcelable checkBuilder(); Notification wip = mBuilder.buildUnstyled(); wip.bigContentView = makeBigContentView(); wip.extras.putCharSequence(EXTRA_TEXT, mBigText); return wip; } } Loading Loading @@ -1981,6 +2001,14 @@ public class Notification implements Parcelable checkBuilder(); Notification wip = mBuilder.buildUnstyled(); wip.bigContentView = makeBigContentView(); StringBuilder builder = new StringBuilder(); for (CharSequence str : mTexts) { builder.append(str); builder.append("\n"); } wip.extras.putCharSequence(EXTRA_TEXT, builder); return wip; } } Loading Loading
core/java/android/app/Notification.java +76 −48 Original line number Diff line number Diff line Loading @@ -25,15 +25,11 @@ import android.graphics.Bitmap; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; import android.os.UserHandle; import android.text.TextUtils; import android.util.IntProperty; import android.util.Log; import android.util.Slog; import android.util.TypedValue; import android.view.View; import android.widget.ProgressBar; Loading Loading @@ -436,8 +432,17 @@ public class Notification implements Parcelable * @hide */ public static final String EXTRA_PEOPLE = "android.people"; /** @hide */ public static final String EXTRA_TITLE = "android.title"; /** @hide */ public static final String EXTRA_TEXT = "android.text"; /** @hide */ public static final String EXTRA_SUBTEXT = "android.subtext"; /** @hide */ public static final String EXTRA_SMALL_ICON = "android.icon"; private Bundle extras; /** @hide */ public Bundle extras = new Bundle(); /** * Structure to encapsulate an "action", including title and icon, that can be attached to a Notification. Loading Loading @@ -589,11 +594,10 @@ public class Notification implements Parcelable kind = parcel.createStringArray(); // may set kind to null if (parcel.readInt() != 0) { extras = parcel.readBundle(); } extras = parcel.readBundle(); // may be null actions = parcel.createTypedArray(Action.CREATOR); // may be null actions = parcel.createTypedArray(Action.CREATOR); if (parcel.readInt() != 0) { bigContentView = RemoteViews.CREATOR.createFromParcel(parcel); } Loading @@ -602,7 +606,11 @@ public class Notification implements Parcelable @Override public Notification clone() { Notification that = new Notification(); cloneInto(that); return that; } private void cloneInto(Notification that) { that.when = this.when; that.icon = this.icon; that.number = this.number; Loading Loading @@ -656,15 +664,16 @@ public class Notification implements Parcelable } if (this.actions != null) { that.actions = new Action[this.actions.length]; for(int i=0; i<this.actions.length; i++) { that.actions[i] = this.actions[i].clone(); } } if (this.bigContentView != null) { that.bigContentView = this.bigContentView.clone(); } return that; } public int describeContents() { Loading Loading @@ -745,14 +754,9 @@ public class Notification implements Parcelable parcel.writeStringArray(kind); // ok for null if (extras != null) { parcel.writeInt(1); extras.writeToParcel(parcel, 0); } else { parcel.writeInt(0); } parcel.writeBundle(extras); // null ok parcel.writeTypedArray(actions, 0); parcel.writeTypedArray(actions, 0); // null ok if (bigContentView != null) { parcel.writeInt(1); Loading Loading @@ -800,35 +804,29 @@ public class Notification implements Parcelable @Deprecated public void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) { // TODO: rewrite this to use Builder RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification_template_base); if (this.icon != 0) { contentView.setImageViewResource(R.id.icon, this.icon); } if (priority < PRIORITY_LOW) { contentView.setInt(R.id.icon, "setBackgroundResource", R.drawable.notification_template_icon_low_bg); contentView.setInt(R.id.status_bar_latest_event_content, "setBackgroundResource", R.drawable.notification_bg_low); } Notification.Builder builder = new Notification.Builder(context); // First, ensure that key pieces of information that may have been set directly // are preserved builder.setWhen(this.when); builder.setSmallIcon(this.icon); builder.setPriority(this.priority); builder.setTicker(this.tickerText); builder.setNumber(this.number); builder.mFlags = this.flags; builder.setSound(this.sound, this.audioStreamType); builder.setDefaults(this.defaults); builder.setVibrate(this.vibrate); // now apply the latestEventInfo fields if (contentTitle != null) { contentView.setTextViewText(R.id.title, contentTitle); builder.setContentTitle(contentTitle); } if (contentText != null) { contentView.setTextViewText(R.id.text, contentText); builder.setContentText(contentText); } if (this.when != 0) { contentView.setViewVisibility(R.id.time, View.VISIBLE); contentView.setLong(R.id.time, "setTime", when); } if (this.number != 0) { NumberFormat f = NumberFormat.getIntegerInstance(); contentView.setTextViewText(R.id.info, f.format(this.number)); } this.contentView = contentView; this.contentIntent = contentIntent; builder.setContentIntent(contentIntent); builder.buildInto(this); } @Override Loading Loading @@ -1615,11 +1613,20 @@ public class Notification implements Parcelable n.kind = null; } n.priority = mPriority; n.extras = mExtras != null ? new Bundle(mExtras) : null; if (mActions.size() > 0) { n.actions = new Action[mActions.size()]; mActions.toArray(n.actions); } n.extras = mExtras != null ? new Bundle(mExtras) : new Bundle(); // Store original information used in the construction of this object n.extras.putCharSequence(EXTRA_TITLE, mContentTitle); n.extras.putCharSequence(EXTRA_TEXT, mContentText); n.extras.putCharSequence(EXTRA_SUBTEXT, mSubText); n.extras.putInt(EXTRA_SMALL_ICON, mSmallIcon); //n.extras.putByteArray(EXTRA_LARGE_ICON, ... return n; } Loading @@ -1642,6 +1649,16 @@ public class Notification implements Parcelable return buildUnstyled(); } } /** * Apply this Builder to an existing {@link Notification} object. * * @hide */ public Notification buildInto(Notification n) { build().cloneInto(n); return n; } } Loading Loading @@ -1882,6 +1899,9 @@ public class Notification implements Parcelable checkBuilder(); Notification wip = mBuilder.buildUnstyled(); wip.bigContentView = makeBigContentView(); wip.extras.putCharSequence(EXTRA_TEXT, mBigText); return wip; } } Loading Loading @@ -1981,6 +2001,14 @@ public class Notification implements Parcelable checkBuilder(); Notification wip = mBuilder.buildUnstyled(); wip.bigContentView = makeBigContentView(); StringBuilder builder = new StringBuilder(); for (CharSequence str : mTexts) { builder.append(str); builder.append("\n"); } wip.extras.putCharSequence(EXTRA_TEXT, builder); return wip; } } Loading