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());