Do not hide the header of a HUN.

With our headerless notifications, this ends up being very jarring, because you always show the entire headerless notification, but when tapping expand the icon and expander disappear.

Fixes: 182011099
Test: expand a HUN
Change-Id: I2bfdd1b7740af5e65cb7007b1e2afc0d7e27cce2
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 120b3f8a..d4dbcf9 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -148,6 +148,9 @@
     <!-- Minimum display time for a heads up notification, in milliseconds. -->
     <integer name="heads_up_notification_minimum_time">2000</integer>
 
+    <!-- Whether to hide the notification header when the HUN is expanded. -->
+    <bool name="heads_up_notification_hides_header">false</bool>
+
     <!-- The number of milliseconds before the heads up notification accepts touches. -->
     <integer name="touch_acceptance_delay">700</integer>
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
index 48f34b3..0548611 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
@@ -51,6 +51,7 @@
 public class NotificationTemplateViewWrapper extends NotificationHeaderViewWrapper {
 
     private final int mFullHeaderTranslation;
+    private final boolean mAllowHideHeader;
     protected ImageView mRightIcon;
     protected ImageView mLeftIcon;
     private ProgressBar mProgressBar;
@@ -71,6 +72,7 @@
     protected NotificationTemplateViewWrapper(Context ctx, View view,
             ExpandableNotificationRow row) {
         super(ctx, view, row);
+        mAllowHideHeader = ctx.getResources().getBoolean(R.bool.heads_up_notification_hides_header);
         mTransformationHelper.setCustomTransformation(
                 new ViewTransformationHelper.CustomTransformation() {
                     @Override
@@ -249,7 +251,7 @@
         super.onContentUpdated(row);
         // With the modern templates, a large icon visually overlaps the header, so we can't
         // hide the header, we must show it.
-        mCanHideHeader = mNotificationHeader != null
+        mCanHideHeader = mAllowHideHeader && mNotificationHeader != null
                 && (mRightIcon == null || mRightIcon.getVisibility() != VISIBLE);
         if (row.getHeaderVisibleAmount() != DEFAULT_HEADER_VISIBLE_AMOUNT) {
             setHeaderVisibleAmount(row.getHeaderVisibleAmount());