Notification layout fixes:

* "Headerless" notifications no longer capped at 88dp.  This allows DecoratedCustomViewStyle content to be sized larger than 48dp, but all that sizing is now controlled by the max heights for the entire notification, which is enforced by the ExpandableNotificationRow, rather than the layout.
* Reduce the max heads up height to 136dp (down by 7dp).  For standard headerless templates, this won't have any effect, because they would never get that tall.  For HUNs with decorated custom content this reduces the custom content area to 96dp without actions (to match RVC) and 56dp with actions (up slightly from 48dp in RVC).
* Fixed a bug where the snooze button would be bound when viewType=NORMAL, which only affected messaging style, and was hiding a layout bug if the snooze setting was enabled.
* Fixed a bug with the action margin on messaging notifications appearing in the collapsed state and causing oversized notifications.

Fixes: 189937886
Test: significant manual testing with notify and notify2, especially with HUNs
Change-Id: I775a0bb29944922581d01f237dbbc5580ced00c4
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 64b100f..05ae449 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -5597,7 +5597,7 @@
         private void bindSnoozeAction(RemoteViews big, StandardTemplateParams p) {
             boolean hideSnoozeButton = mN.isForegroundService() || mN.fullScreenIntent != null
                     || isBackgroundColorized(p)
-                    || p.mViewType == StandardTemplateParams.VIEW_TYPE_HEADS_UP;
+                    || p.mViewType != StandardTemplateParams.VIEW_TYPE_BIG;
             big.setBoolean(R.id.snooze_button, "setEnabled", !hideSnoozeButton);
             if (hideSnoozeButton) {
                 // Only hide; NotificationContentView will show it when it adds the click listener
diff --git a/core/res/res/layout/notification_template_material_base.xml b/core/res/res/layout/notification_template_material_base.xml
index e644cd5..614779a 100644
--- a/core/res/res/layout/notification_template_material_base.xml
+++ b/core/res/res/layout/notification_template_material_base.xml
@@ -14,11 +14,12 @@
   ~ limitations under the License
   -->
 
-<com.android.internal.widget.NotificationMaxHeightFrameLayout
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_weight="1"
     android:minHeight="@dimen/notification_headerless_min_height"
     android:tag="base"
     >
@@ -166,4 +167,4 @@
 
     </LinearLayout>
 
-</com.android.internal.widget.NotificationMaxHeightFrameLayout>
+</FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_heads_up_base.xml b/core/res/res/layout/notification_template_material_heads_up_base.xml
index a0d19b4..34d7118 100644
--- a/core/res/res/layout/notification_template_material_heads_up_base.xml
+++ b/core/res/res/layout/notification_template_material_heads_up_base.xml
@@ -23,7 +23,7 @@
     android:tag="headsUp"
     >
 
-    <com.android.internal.widget.RemeasuringLinearLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:clipChildren="false"
@@ -35,7 +35,7 @@
             android:id="@null"
             />
 
-        <com.android.internal.widget.RemeasuringLinearLayout
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="-20dp"
@@ -60,6 +60,6 @@
                 />
 
             <include layout="@layout/notification_material_action_list" />
-        </com.android.internal.widget.RemeasuringLinearLayout>
-    </com.android.internal.widget.RemeasuringLinearLayout>
+        </LinearLayout>
+    </LinearLayout>
 </FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_messaging.xml b/core/res/res/layout/notification_template_material_messaging.xml
index eb61ea4..3564f97 100644
--- a/core/res/res/layout/notification_template_material_messaging.xml
+++ b/core/res/res/layout/notification_template_material_messaging.xml
@@ -199,11 +199,13 @@
             android:id="@+id/notification_action_list_margin_target"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginTop="-20dp"
             android:clipChildren="false"
             android:orientation="vertical">
         <include layout="@layout/notification_template_smart_reply_container"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_content_margin"
                 android:layout_marginStart="@dimen/notification_content_margin_start"
                 android:layout_marginEnd="@dimen/notification_content_margin_end" />
         <include layout="@layout/notification_material_action_list" />
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 0be648f..c1efc1f 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -151,7 +151,7 @@
     <dimen name="notification_max_heads_up_height_before_s">162dp</dimen>
 
     <!-- Height of a heads up notification in the status bar -->
-    <dimen name="notification_max_heads_up_height">143dp</dimen>
+    <dimen name="notification_max_heads_up_height">136dp</dimen>
 
     <!-- Height of a heads up notification in the status bar -->
     <dimen name="notification_max_heads_up_height_increased">188dp</dimen>