diff options
author | Daniel Sandler <dsandler@android.com> | 2012-04-18 05:28:00 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-18 05:28:00 -0700 |
commit | b9a6d4d052a7cc63b4753081f64628be3503681a (patch) | |
tree | f2ad9b5ab8c858785b11df84aff428b2d3925490 /core/java/android | |
parent | e1e874854ab8b73dc5f2346108cbfe90dabaea18 (diff) | |
parent | 879c5e07c019bbcd8647e60656d0749eae0467c3 (diff) | |
download | frameworks_base-b9a6d4d052a7cc63b4753081f64628be3503681a.zip frameworks_base-b9a6d4d052a7cc63b4753081f64628be3503681a.tar.gz frameworks_base-b9a6d4d052a7cc63b4753081f64628be3503681a.tar.bz2 |
Merge "New InboxStyle template for expanded notifications."
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/app/Notification.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 5cce25f..dc796bf 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -1696,4 +1696,60 @@ public class Notification implements Parcelable return wip; } } + + /** + * Helper class for generating large-format notifications that include a list of (up to 5) strings. + * + * This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so: + * <pre class="prettyprint"> + * Notification noti = new Notification.DigestStyle( + * new Notification.Builder() + * .setContentTitle("New mail from " + sender.toString()) + * .setContentText(subject) + * .setSmallIcon(R.drawable.new_mail) + * .setLargeIcon(aBitmap)) + * .addLine(str1) + * .addLine(str2) + * .build(); + * </pre> + * + * @see Notification#bigContentView + */ + public static class InboxStyle { + private Builder mBuilder; + private ArrayList<CharSequence> mTexts = new ArrayList<CharSequence>(5); + + public InboxStyle(Builder builder) { + mBuilder = builder; + } + + public InboxStyle addLine(CharSequence cs) { + mTexts.add(cs); + return this; + } + + private RemoteViews makeBigContentView() { + RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(R.layout.notification_template_inbox); + + int[] rowIds = {R.id.inbox_text0, R.id.inbox_text1, R.id.inbox_text2, R.id.inbox_text3, R.id.inbox_text4}; + + int i=0; + while (i < mTexts.size() && i < rowIds.length) { + CharSequence str = mTexts.get(i); + if (str != null && !str.equals("")) { + contentView.setViewVisibility(rowIds[i], View.VISIBLE); + contentView.setTextViewText(rowIds[i], str); + } + i++; + } + + return contentView; + } + + public Notification build() { + Notification wip = mBuilder.getNotification(); + wip.bigContentView = makeBigContentView(); + return wip; + } + } } |