diff options
| author | 2021-06-02 20:23:19 -0400 | |
|---|---|---|
| committer | 2021-06-02 20:23:59 -0400 | |
| commit | 604c074dbeff512aee2ecb250552a3c0061a9b56 (patch) | |
| tree | 6ae0409eb08bd13525075e61530fed49dc7dea42 | |
| parent | 0def72662fbca3c0181e19936cbec53b5b895eb4 (diff) | |
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
5 files changed, 11 insertions, 8 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 64b100f838ba..05ae4492b104 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -5597,7 +5597,7 @@ public class Notification implements Parcelable 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 e644cd55a86a..614779a79253 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 a0d19b409cea..34d7118b4508 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 eb61ea45b4df..3564f9755a5d 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 0be648f1b9bd..c1efc1fc247b 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> |