diff options
author | 2025-02-06 10:11:26 -0800 | |
---|---|---|
committer | 2025-02-06 10:11:26 -0800 | |
commit | 8896bc45d0ea005ff54f97a023af4d8d96f4f09d (patch) | |
tree | 636667ea50f4c657afbe8325b04f19b9d7316a21 | |
parent | 84945e9d1d7d0b6753417437bda67e81073cbf52 (diff) | |
parent | 680976e9517b93c6a549f216c8578d58207f53e0 (diff) |
Merge "[MagicAction] Created new layout for magic action button." into main
5 files changed, 50 insertions, 28 deletions
diff --git a/packages/SystemUI/res/drawable/magic_action_button_background.xml b/packages/SystemUI/res/drawable/magic_action_button_background.xml new file mode 100644 index 000000000000..7199b2dfbe5a --- /dev/null +++ b/packages/SystemUI/res/drawable/magic_action_button_background.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> + +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" + android:color="@color/notification_ripple_untinted_color"> + <item> + <inset + android:insetBottom="8dp" + android:insetLeft="0dp" + android:insetRight="0dp" + android:insetTop="8dp"> + <shape android:shape="rectangle"> + <corners android:radius="@dimen/magic_action_button_corner_radius" /> + <solid android:color="@androidprv:color/materialColorPrimaryContainer" /> + <stroke + android:width="@dimen/magic_action_button_outline_stroke_width" + android:color="@androidprv:color/materialColorOutlineVariant" /> + </shape> + </inset> + </item> +</ripple> diff --git a/packages/SystemUI/res/layout/magic_action_button.xml b/packages/SystemUI/res/layout/magic_action_button.xml index 59392ef0fb33..82d8d7043ff0 100644 --- a/packages/SystemUI/res/layout/magic_action_button.xml +++ b/packages/SystemUI/res/layout/magic_action_button.xml @@ -1,19 +1,16 @@ <Button xmlns:android="http://schemas.android.com/apk/res/android" - style="@android:style/Widget.Material.Button" - android:stateListAnimator="@null" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:minWidth="0dp" - android:minHeight="@dimen/smart_reply_button_min_height" - android:paddingVertical="@dimen/smart_reply_button_padding_vertical" - android:background="@drawable/smart_reply_button_background" - android:gravity="center" - android:fontFamily="roboto-medium" - android:textSize="@dimen/smart_reply_button_font_size" - android:lineSpacingExtra="@dimen/smart_reply_button_line_spacing_extra" - android:textColor="@color/smart_reply_button_text" - android:paddingStart="@dimen/smart_reply_button_action_padding_left" - android:paddingEnd="@dimen/smart_reply_button_padding_horizontal" - android:drawablePadding="@dimen/smart_action_button_icon_padding" - android:textStyle="normal" - android:ellipsize="none"/> + style="@android:style/Widget.Material.Button" + android:layout_width="wrap_content" + android:layout_height="@dimen/magic_action_button_touch_target_height" + android:background="@drawable/magic_action_button_background" + android:drawablePadding="@dimen/magic_action_button_drawable_padding" + android:ellipsize="none" + android:fontFamily="google-sans-flex" + android:gravity="center" + android:minWidth="0dp" + android:paddingHorizontal="@dimen/magic_action_button_padding_horizontal" + android:paddingVertical="@dimen/magic_action_button_inset_vertical" + android:stateListAnimator="@null" + android:textColor="@color/magic_action_button_text_color" + android:textSize="@dimen/magic_action_button_font_size" + android:textStyle="normal" /> diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml index 015e0e83e57d..5f8f77993245 100644 --- a/packages/SystemUI/res/values/colors.xml +++ b/packages/SystemUI/res/values/colors.xml @@ -145,6 +145,9 @@ <color name="smart_reply_button_background">#ffffffff</color> <color name="smart_reply_button_stroke">@*android:color/accent_device_default</color> + <!-- Magic Action colors --> + <color name="magic_action_button_text_color">@androidprv:color/materialColorOnSurfaceVariant</color> + <!-- Biometric dialog colors --> <color name="biometric_dialog_gray">#ff757575</color> <color name="biometric_dialog_accent">@color/material_dynamic_primary40</color> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 220d8a99d130..2d3c07b93cb1 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1129,6 +1129,17 @@ <dimen name="smart_action_button_icon_padding">8dp</dimen> <dimen name="smart_action_button_outline_stroke_width">2dp</dimen> + <!-- Magic Action params. --> + <!-- Corner radius = half of min_height to create rounded sides. --> + <dimen name="magic_action_button_corner_radius">16dp</dimen> + <dimen name="magic_action_button_icon_size">20dp</dimen> + <dimen name="magic_action_button_outline_stroke_width">1dp</dimen> + <dimen name="magic_action_button_padding_horizontal">12dp</dimen> + <dimen name="magic_action_button_inset_vertical">8dp</dimen> + <dimen name="magic_action_button_drawable_padding">8dp</dimen> + <dimen name="magic_action_button_touch_target_height">48dp</dimen> + <dimen name="magic_action_button_font_size">12sp</dimen> + <!-- A reasonable upper bound for the height of the smart reply button. The measuring code needs to start with a guess for the maximum size. Currently two-line smart reply buttons add about 88dp of height to the notifications. --> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt index 1887db948b5a..d3af1e5b65fe 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt @@ -409,16 +409,6 @@ constructor( as Button) .apply { text = action.title - // TODO: Move the MagicActionBackgroundDrawable to MagicActionButton once - // MagicActionButton is created. - if (isMagicAction) { - background = MagicActionBackgroundDrawable(parent.context) - val textColor = - parent.context.getColor( - com.android.internal.R.color.materialColorOnPrimaryContainer - ) - setTextColor(textColor) - } // We received the Icon from the application - so use the Context of the application // to |