Add Notification.Builder.setShowWhen(boolean).
No more setting when to 0 to hide the timestamp! *cheering*
Bug: 6915046
Change-Id: I1560a1c2dd366d416d1d059704ca7c63149334eb
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index cb83dc2..4bb7589 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -951,6 +951,7 @@
private ArrayList<Action> mActions = new ArrayList<Action>(MAX_ACTION_BUTTONS);
private boolean mUseChronometer;
private Style mStyle;
+ private boolean mShowWhen = true;
/**
* Constructs a new Builder with the defaults:
@@ -982,8 +983,9 @@
/**
* Add a timestamp pertaining to the notification (usually the time the event occurred).
+ * It will be shown in the notification content view by default; use
+ * {@link Builder#setShowWhen(boolean) setShowWhen} to control this.
*
-
* @see Notification#when
*/
public Builder setWhen(long when) {
@@ -992,6 +994,15 @@
}
/**
+ * Control whether the timestamp set with {@link Builder#setWhen(long) setWhen} is shown
+ * in the content view.
+ */
+ public Builder setShowWhen(boolean show) {
+ mShowWhen = show;
+ return this;
+ }
+
+ /**
* Show the {@link Notification#when} field as a stopwatch.
*
* Instead of presenting <code>when</code> as a timestamp, the notification will show an
@@ -1467,7 +1478,7 @@
contentView.setViewPadding(R.id.line1, 0, 0, 0, 0);
}
- if (mWhen != 0) {
+ if (mWhen != 0 && mShowWhen) {
if (mUseChronometer) {
contentView.setViewVisibility(R.id.chronometer, View.VISIBLE);
contentView.setLong(R.id.chronometer, "setBase",
@@ -1477,7 +1488,10 @@
contentView.setViewVisibility(R.id.time, View.VISIBLE);
contentView.setLong(R.id.time, "setTime", mWhen);
}
+ } else {
+ contentView.setViewVisibility(R.id.time, View.GONE);
}
+
contentView.setViewVisibility(R.id.line3, showLine3 ? View.VISIBLE : View.GONE);
contentView.setViewVisibility(R.id.overflow_divider, showLine3 ? View.VISIBLE : View.GONE);
return contentView;