summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2012-04-18 05:28:00 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-18 05:28:00 -0700
commitb9a6d4d052a7cc63b4753081f64628be3503681a (patch)
treef2ad9b5ab8c858785b11df84aff428b2d3925490 /core/java/android
parente1e874854ab8b73dc5f2346108cbfe90dabaea18 (diff)
parent879c5e07c019bbcd8647e60656d0749eae0467c3 (diff)
downloadframeworks_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.java56
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(&quot;New mail from &quot; + 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;
+ }
+ }
}