diff options
Diffstat (limited to 'core/java/android/app/Notification.java')
| -rw-r--r-- | core/java/android/app/Notification.java | 127 |
1 files changed, 104 insertions, 23 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index a7543a83f1b2..8d994c43a1ed 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -427,22 +427,48 @@ public class Notification implements Parcelable public String[] kind; /** - * Extra key for people values (type TBD). - * + * Additional semantic data to be carried around with this Notification. * @hide */ - public static final String EXTRA_PEOPLE = "android.people"; + public Bundle extras = new Bundle(); + + // extras keys for Builder inputs /** @hide */ public static final String EXTRA_TITLE = "android.title"; /** @hide */ + public static final String EXTRA_TITLE_BIG = EXTRA_TITLE + ".big"; + /** @hide */ public static final String EXTRA_TEXT = "android.text"; /** @hide */ - public static final String EXTRA_SUBTEXT = "android.subtext"; + public static final String EXTRA_SUB_TEXT = "android.subText"; + /** @hide */ + public static final String EXTRA_INFO_TEXT = "android.infoText"; + /** @hide */ + public static final String EXTRA_SUMMARY_TEXT = "android.summaryText"; /** @hide */ public static final String EXTRA_SMALL_ICON = "android.icon"; + /** @hide */ + public static final String EXTRA_LARGE_ICON = "android.largeIcon"; + /** @hide */ + public static final String EXTRA_LARGE_ICON_BIG = EXTRA_LARGE_ICON + ".big"; + /** @hide */ + public static final String EXTRA_PROGRESS = "android.progress"; + /** @hide */ + public static final String EXTRA_PROGRESS_MAX = "android.progressMax"; + /** @hide */ + public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate"; + /** @hide */ + public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer"; + /** @hide */ + public static final String EXTRA_SHOW_WHEN = "android.showWhen"; + /** @hide from BigPictureStyle */ + public static final String EXTRA_PICTURE = "android.picture"; + /** @hide from InboxStyle */ + public static final String EXTRA_TEXT_LINES = "android.textLines"; + // extras keys for other interesting pieces of information /** @hide */ - public Bundle extras = new Bundle(); + public static final String EXTRA_PEOPLE = "android.people"; /** * Structure to encapsulate an "action", including title and icon, that can be attached to a Notification. @@ -1621,16 +1647,26 @@ public class Notification implements Parcelable mActions.toArray(n.actions); } - n.extras = mExtras != null ? new Bundle(mExtras) : new Bundle(); + return n; + } + /** + * Capture, in the provided bundle, semantic information used in the construction of + * this Notification object. + * @hide + */ + public void addExtras(Bundle extras) { // 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; + extras.putCharSequence(EXTRA_TITLE, mContentTitle); + extras.putCharSequence(EXTRA_TEXT, mContentText); + extras.putCharSequence(EXTRA_SUB_TEXT, mSubText); + extras.putCharSequence(EXTRA_INFO_TEXT, mContentInfo); + extras.putInt(EXTRA_SMALL_ICON, mSmallIcon); + extras.putInt(EXTRA_PROGRESS, mProgress); + extras.putInt(EXTRA_PROGRESS_MAX, mProgressMax); + extras.putBoolean(EXTRA_PROGRESS_INDETERMINATE, mProgressIndeterminate); + extras.putBoolean(EXTRA_SHOW_CHRONOMETER, mUseChronometer); + extras.putBoolean(EXTRA_SHOW_WHEN, mShowWhen); } /** @@ -1646,11 +1682,22 @@ public class Notification implements Parcelable * object. */ public Notification build() { + final Notification n; + if (mStyle != null) { - return mStyle.build(); + n = mStyle.build(); } else { - return buildUnstyled(); + n = buildUnstyled(); } + + n.extras = mExtras != null ? new Bundle(mExtras) : new Bundle(); + + addExtras(n.extras); + if (mStyle != null) { + mStyle.addExtras(n.extras); + } + + return n; } /** @@ -1664,7 +1711,6 @@ public class Notification implements Parcelable } } - /** * An object that can apply a rich notification style to a {@link Notification.Builder} * object. @@ -1739,6 +1785,18 @@ public class Notification implements Parcelable return contentView; } + /** + * @hide + */ + public void addExtras(Bundle extras) { + if (mSummaryTextSet) { + extras.putCharSequence(EXTRA_SUMMARY_TEXT, mSummaryText); + } + if (mBigContentTitle != null) { + extras.putCharSequence(EXTRA_TITLE_BIG, mBigContentTitle); + } + } + public abstract Notification build(); } @@ -1813,6 +1871,18 @@ public class Notification implements Parcelable return contentView; } + /** + * @hide + */ + public void addExtras(Bundle extras) { + super.addExtras(extras); + + if (mBigLargeIconSet) { + extras.putParcelable(EXTRA_LARGE_ICON_BIG, mBigLargeIcon); + } + extras.putParcelable(EXTRA_PICTURE, mPicture); + } + @Override public Notification build() { checkBuilder(); @@ -1878,6 +1948,15 @@ public class Notification implements Parcelable return this; } + /** + * @hide + */ + public void addExtras(Bundle extras) { + super.addExtras(extras); + + extras.putCharSequence(EXTRA_TEXT, mBigText); + } + private RemoteViews makeBigContentView() { // Remove the content text so line3 only shows if you have a summary final boolean hadThreeLines = (mBuilder.mContentText != null && mBuilder.mSubText != null); @@ -1964,6 +2043,15 @@ public class Notification implements Parcelable return this; } + /** + * @hide + */ + public void addExtras(Bundle extras) { + super.addExtras(extras); + CharSequence[] a = new CharSequence[mTexts.size()]; + extras.putCharSequenceArray(EXTRA_TEXT_LINES, mTexts.toArray(a)); + } + private RemoteViews makeBigContentView() { // Remove the content text so line3 disappears unless you have a summary mBuilder.mContentText = null; @@ -2005,13 +2093,6 @@ public class Notification implements Parcelable 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; } } |
