diff options
author | 2023-05-19 21:12:16 +0000 | |
---|---|---|
committer | 2023-05-19 21:12:16 +0000 | |
commit | d4274726805f86f0cb35a85bf0ace308e31ad37e (patch) | |
tree | 83fe5f5153a32c08931b1e9f337302ab4f67300d | |
parent | 3db2b46450df02a2c22ffbb4ac8b51c842b60abf (diff) | |
parent | 79b266c91a5a59c78605841f1eeb80bc1fc7f9a2 (diff) |
Merge "Updates share action chips to match new design" into udc-dev am: 4d81a24902 am: 0f4e76136f am: 79b266c91a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/23346981
Change-Id: I9ec32bf6911325c4c32a5874d26496ca784cc132
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | java/res/drawable/chooser_action_button_bg.xml | 5 | ||||
-rw-r--r-- | java/res/layout/chooser_action_view.xml | 10 | ||||
-rw-r--r-- | java/res/values-h480dp/dimens.xml | 1 | ||||
-rw-r--r-- | java/res/values/dimens.xml | 4 | ||||
-rw-r--r-- | java/src/com/android/intentresolver/widget/ScrollableActionRow.kt | 45 |
5 files changed, 40 insertions, 25 deletions
diff --git a/java/res/drawable/chooser_action_button_bg.xml b/java/res/drawable/chooser_action_button_bg.xml index b03c310e..300be831 100644 --- a/java/res/drawable/chooser_action_button_bg.xml +++ b/java/res/drawable/chooser_action_button_bg.xml @@ -24,9 +24,8 @@ android:insetRight="0dp" android:insetBottom="8dp"> <shape android:shape="rectangle"> - <corners android:radius="8dp" /> - <stroke android:width="1dp" - android:color="?androidprv:attr/materialColorPrimaryContainer"/> + <corners android:radius="@dimen/chooser_action_corner_radius" /> + <solid android:color="?androidprv:attr/materialColorSurfaceContainerHigh"/> </shape> </inset> </item> diff --git a/java/res/layout/chooser_action_view.xml b/java/res/layout/chooser_action_view.xml index 8bdcd15f..bb418ebd 100644 --- a/java/res/layout/chooser_action_view.xml +++ b/java/res/layout/chooser_action_view.xml @@ -17,14 +17,16 @@ <TextView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" style="?android:attr/borderlessButtonStyle" - android:paddingVertical="16dp" + android:background="@drawable/chooser_action_button_bg" + android:paddingVertical="6dp" + android:paddingHorizontal="8dp" android:clickable="true" - android:drawablePadding="8dp" - android:drawableTint="?androidprv:attr/materialColorOnSurfaceVariant" + android:drawablePadding="6dp" + android:drawableTint="?androidprv:attr/materialColorOnSurface" android:drawableTintMode="src_in" android:ellipsize="end" android:gravity="center" - android:maxLines="2" + android:maxLines="1" android:maxWidth="@dimen/chooser_action_max_width" android:textColor="?androidprv:attr/materialColorOnSurface" android:textSize="12sp" /> diff --git a/java/res/values-h480dp/dimens.xml b/java/res/values-h480dp/dimens.xml index a9419eda..9e714943 100644 --- a/java/res/values-h480dp/dimens.xml +++ b/java/res/values-h480dp/dimens.xml @@ -23,7 +23,6 @@ <dimen name="chooser_preview_width">-1px</dimen> <dimen name="chooser_view_spacing">18dp</dimen> - <dimen name="chooser_action_max_width">100dp</dimen> <dimen name="chooser_preview_image_height_tall">192dp</dimen> <dimen name="grid_padding_top">10dp</dimen> <dimen name="width_text_image_preview_size">56dp</dimen> diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 46ff75ed..69cc4984 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -17,6 +17,9 @@ <dimen name="resolver_max_width">480dp</dimen> <!-- chooser/resolver (sharesheet) spacing --> + <dimen name="chooser_action_corner_radius">28dp</dimen> + <dimen name="chooser_action_horizontal_margin">2dp</dimen> + <dimen name="chooser_action_max_width">200dp</dimen> <dimen name="chooser_width">412dp</dimen> <dimen name="chooser_corner_radius">28dp</dimen> <dimen name="chooser_corner_radius_small">14dp</dimen> @@ -57,7 +60,6 @@ than 480dp, the values are set in values-h480dp/dimens.xml --> <dimen name="chooser_preview_width">412dp</dimen> <dimen name="chooser_view_spacing">8dp</dimen> - <dimen name="chooser_action_max_width">140dp</dimen> <dimen name="chooser_preview_image_height_tall">64dp</dimen> <dimen name="grid_padding_top">6dp</dimen> <dimen name="width_text_image_preview_size">46dp</dimen> diff --git a/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt b/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt index 8fdb609e..3a79ef56 100644 --- a/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt +++ b/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt @@ -17,6 +17,7 @@ package com.android.intentresolver.widget import android.content.Context +import android.graphics.Rect import android.graphics.drawable.Drawable import android.util.AttributeSet import android.view.LayoutInflater @@ -31,19 +32,29 @@ class ScrollableActionRow : RecyclerView, ActionRow { constructor(context: Context) : this(context, null) constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) constructor( - context: Context, attrs: AttributeSet?, defStyleAttr: Int + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int ) : super(context, attrs, defStyleAttr) { layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) adapter = Adapter(context) - context.obtainStyledAttributes( - attrs, R.styleable.ScrollableActionRow, defStyleAttr, 0 - ).use { a -> - horizontalActions = a.getBoolean(R.styleable.ScrollableActionRow_horizontalActions, false) - } + context + .obtainStyledAttributes(attrs, R.styleable.ScrollableActionRow, defStyleAttr, 0) + .use { a -> + horizontalActions = + a.getBoolean(R.styleable.ScrollableActionRow_horizontalActions, false) + } + + addItemDecoration( + MarginDecoration( + context.resources.getDimensionPixelSize(R.dimen.chooser_action_horizontal_margin), + ) + ) } - private val actionsAdapter get() = adapter as Adapter + private val actionsAdapter + get() = adapter as Adapter private val horizontalActions: Boolean override fun setActions(actions: List<ActionRow.Action>) { @@ -91,7 +102,8 @@ class ScrollableActionRow : RecyclerView, ActionRow { } private inner class ViewHolder( - private val view: TextView, private val iconSize: Int, + private val view: TextView, + private val iconSize: Int, ) : RecyclerView.ViewHolder(view) { fun bind(action: ActionRow.Action) { @@ -100,16 +112,10 @@ class ScrollableActionRow : RecyclerView, ActionRow { // some drawables (edit) does not gets tinted when set to the top of the text // with TextView#setCompoundDrawableRelative tintIcon(icon, view) - if (horizontalActions) { - view.setCompoundDrawablesRelative(icon, null, null, null) - } else { - view.setCompoundDrawablesRelative(null, icon, null, null) - } + view.setCompoundDrawablesRelative(icon, null, null, null) } view.text = action.label ?: "" - view.setOnClickListener { - action.onClicked.run() - } + view.setOnClickListener { action.onClicked.run() } view.id = action.id } @@ -124,4 +130,11 @@ class ScrollableActionRow : RecyclerView, ActionRow { view.compoundDrawableTintBlendMode?.let { drawable.setTintBlendMode(it) } } } + + private class MarginDecoration(private val margin: Int) : RecyclerView.ItemDecoration() { + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: State) { + outRect.left = margin + outRect.right = margin + } + } } |