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;