From 664b0a3bcf346c720982f06bda091e4d444716a4 Mon Sep 17 00:00:00 2001 From: 1 Date: Thu, 25 May 2023 23:58:40 +0000 Subject: Padding and color fixes to align with mocks - Remove divider above actions. - Some color fixes. - Actions are always horizontal, no attr needed. - Lots of margin and padding tweaks per mocks. - Fix horizontal recyclerview padding in RTL Test: Lots of manual inspection with a variety of share payloads. Test: atest IntentResolverUnitTests Bug: 283245199 Change-Id: Ica2757a90387afd6be793b8c44fa47fd136056c7 --- .../drawable/chooser_content_preview_rounded.xml | 8 +------ java/res/layout/chooser_action_row.xml | 18 +++++---------- java/res/layout/chooser_action_view.xml | 4 ++-- java/res/layout/chooser_grid_preview_file.xml | 3 +-- .../res/layout/chooser_grid_preview_files_text.xml | 5 ++--- java/res/layout/chooser_grid_preview_image.xml | 5 ++--- java/res/layout/chooser_grid_preview_text.xml | 18 ++++++++------- java/res/layout/chooser_headline_row.xml | 2 +- java/res/values-h480dp/bools.xml | 20 ----------------- java/res/values-h480dp/dimens.xml | 1 - java/res/values/attrs.xml | 4 ---- java/res/values/bools.xml | 21 ----------------- java/res/values/dimens.xml | 8 +++---- .../contentpreview/FileContentPreviewUi.java | 3 --- .../FilesPlusTextContentPreviewUi.java | 4 ---- .../contentpreview/UnifiedContentPreviewUi.java | 3 --- .../intentresolver/widget/ScrollableActionRow.kt | 26 +++++++++++++--------- .../widget/ScrollableImagePreviewView.kt | 12 +++++++--- 18 files changed, 53 insertions(+), 112 deletions(-) delete mode 100644 java/res/values-h480dp/bools.xml delete mode 100644 java/res/values/bools.xml (limited to 'java') diff --git a/java/res/drawable/chooser_content_preview_rounded.xml b/java/res/drawable/chooser_content_preview_rounded.xml index 3d6145bc..a1b204bd 100644 --- a/java/res/drawable/chooser_content_preview_rounded.xml +++ b/java/res/drawable/chooser_content_preview_rounded.xml @@ -21,13 +21,7 @@ android:shape="rectangle"> + android:color="?androidprv:attr/materialColorSurfaceContainerHigh" /> - - diff --git a/java/res/layout/chooser_action_row.xml b/java/res/layout/chooser_action_row.xml index 4a3df79e..55d6adf7 100644 --- a/java/res/layout/chooser_action_row.xml +++ b/java/res/layout/chooser_action_row.xml @@ -16,27 +16,21 @@ - - + xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> diff --git a/java/res/layout/chooser_action_view.xml b/java/res/layout/chooser_action_view.xml index bb418ebd..ba9134cc 100644 --- a/java/res/layout/chooser_action_view.xml +++ b/java/res/layout/chooser_action_view.xml @@ -18,8 +18,8 @@ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" style="?android:attr/borderlessButtonStyle" android:background="@drawable/chooser_action_button_bg" - android:paddingVertical="6dp" - android:paddingHorizontal="8dp" + android:paddingBottom="8dp" + android:paddingHorizontal="@dimen/chooser_edge_margin_normal_half" android:clickable="true" android:drawablePadding="6dp" android:drawableTint="?androidprv:attr/materialColorOnSurface" diff --git a/java/res/layout/chooser_grid_preview_file.xml b/java/res/layout/chooser_grid_preview_file.xml index 660e54a2..6978f934 100644 --- a/java/res/layout/chooser_grid_preview_file.xml +++ b/java/res/layout/chooser_grid_preview_file.xml @@ -24,7 +24,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingBottom="@dimen/chooser_view_spacing" android:background="?androidprv:attr/materialColorSurfaceContainer"> @@ -34,7 +33,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginHorizontal="@dimen/chooser_edge_margin_normal" - android:layout_marginBottom="@dimen/chooser_view_spacing" + android:layout_marginBottom="8dp" android:padding="@dimen/chooser_edge_margin_normal" android:background="@drawable/chooser_content_preview_rounded" android:id="@androidprv:id/content_preview_file_layout"> diff --git a/java/res/layout/chooser_grid_preview_files_text.xml b/java/res/layout/chooser_grid_preview_files_text.xml index 75713ae5..c64d7ddd 100644 --- a/java/res/layout/chooser_grid_preview_files_text.xml +++ b/java/res/layout/chooser_grid_preview_files_text.xml @@ -32,9 +32,9 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" - android:layout_marginBottom="@dimen/chooser_view_spacing" + android:layout_marginBottom="8dp" android:layout_marginHorizontal="@dimen/chooser_edge_margin_normal" - android:paddingHorizontal="@dimen/chooser_edge_margin_normal_half" + android:padding="@dimen/chooser_edge_margin_normal_half" android:background="@drawable/chooser_content_preview_rounded"> + app:itemOuterSpacing="@dimen/chooser_edge_margin_normal"/> diff --git a/java/res/layout/chooser_grid_preview_text.xml b/java/res/layout/chooser_grid_preview_text.xml index 96496a30..df906cce 100644 --- a/java/res/layout/chooser_grid_preview_text.xml +++ b/java/res/layout/chooser_grid_preview_text.xml @@ -33,10 +33,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginLeft="@dimen/chooser_edge_margin_normal" - android:layout_marginRight="@dimen/chooser_edge_margin_normal" - android:layout_marginBottom="@dimen/chooser_view_spacing" - android:padding="@dimen/chooser_edge_margin_normal_half" + android:layout_marginHorizontal="@dimen/chooser_edge_margin_normal" + android:layout_marginBottom="8dp" + android:paddingVertical="@dimen/chooser_edge_margin_normal_half" + android:paddingStart="@dimen/chooser_edge_margin_normal_half" + android:paddingEnd="0dp" android:background="@drawable/chooser_content_preview_rounded" android:id="@+id/text_preview_layout"> @@ -91,20 +92,21 @@ diff --git a/java/res/layout/chooser_headline_row.xml b/java/res/layout/chooser_headline_row.xml index e1668d25..62781847 100644 --- a/java/res/layout/chooser_headline_row.xml +++ b/java/res/layout/chooser_headline_row.xml @@ -22,7 +22,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingHorizontal="@dimen/chooser_edge_margin_normal" - android:layout_marginBottom="16dp" + android:layout_marginBottom="@dimen/chooser_view_spacing" > - - - - false - diff --git a/java/res/values-h480dp/dimens.xml b/java/res/values-h480dp/dimens.xml index 9e714943..4d948fe9 100644 --- a/java/res/values-h480dp/dimens.xml +++ b/java/res/values-h480dp/dimens.xml @@ -22,7 +22,6 @@ 8dp -1px - 18dp 192dp 10dp 56dp diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index c96221ec..67acb3ae 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -51,8 +51,4 @@ - - - - diff --git a/java/res/values/bools.xml b/java/res/values/bools.xml deleted file mode 100644 index fb6db549..00000000 --- a/java/res/values/bools.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - true - diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 69cc4984..ec9ff6b0 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -25,8 +25,8 @@ 14dp 25dp 8dp - 24dp - 12dp + 16dp + 8dp 20sp 1dp 120dp @@ -55,12 +55,12 @@ 22dp 0dp 150dp + 16dp 412dp - 8dp - 64dp + 46dp 6dp 46dp diff --git a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java index 8d3e62aa..20758189 100644 --- a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java @@ -109,9 +109,6 @@ class FileContentPreviewUi extends ContentPreviewUi { mContentPreview.findViewById(com.android.internal.R.id.chooser_action_row); List actions = mActionFactory.createCustomActions(); actionRow.setActions(actions); - if (actions.isEmpty()) { - mContentPreview.findViewById(R.id.actions_top_divider).setVisibility(View.GONE); - } return mContentPreview; } diff --git a/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java index 61ca44e0..e4677d90 100644 --- a/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java @@ -125,10 +125,6 @@ class FilesPlusTextContentPreviewUi extends ContentPreviewUi { List actions = mActionFactory.createCustomActions(); actionRow.setActions(actions); - if (actions.isEmpty()) { - mContentPreviewView.findViewById(R.id.actions_top_divider).setVisibility(View.GONE); - } - if (mIsMetadataUpdated) { updateUiWithMetadata(mContentPreviewView); } else if (!mIsSingleImage) { diff --git a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java index eb3e8e72..6385f2b6 100644 --- a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java @@ -93,9 +93,6 @@ class UnifiedContentPreviewUi extends ContentPreviewUi { mContentPreviewView.findViewById(com.android.internal.R.id.chooser_action_row); List actions = mActionFactory.createCustomActions(); actionRow.setActions(actions); - if (actions.isEmpty()) { - mContentPreviewView.findViewById(R.id.actions_top_divider).setVisibility(View.GONE); - } ScrollableImagePreviewView imagePreview = mContentPreviewView.requireViewById(R.id.scrollable_image_preview); diff --git a/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt b/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt index 3a79ef56..2b64ca30 100644 --- a/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt +++ b/java/src/com/android/intentresolver/widget/ScrollableActionRow.kt @@ -24,6 +24,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.core.view.ViewCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.android.intentresolver.R @@ -39,23 +40,16 @@ class ScrollableActionRow : RecyclerView, ActionRow { 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) - } - addItemDecoration( MarginDecoration( context.resources.getDimensionPixelSize(R.dimen.chooser_action_horizontal_margin), + context.resources.getDimensionPixelSize(R.dimen.chooser_edge_margin_normal) ) ) } private val actionsAdapter get() = adapter as Adapter - private val horizontalActions: Boolean override fun setActions(actions: List) { actionsAdapter.setActions(actions) @@ -131,10 +125,20 @@ class ScrollableActionRow : RecyclerView, ActionRow { } } - private class MarginDecoration(private val margin: Int) : RecyclerView.ItemDecoration() { + private class MarginDecoration(private val innerMargin: Int, private val outerMargin: Int) : + ItemDecoration() { override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: State) { - outRect.left = margin - outRect.right = margin + val index = parent.getChildAdapterPosition(view) + val startMargin = if (index == 0) outerMargin else innerMargin + val endMargin = if (index == state.itemCount - 1) outerMargin else innerMargin + + if (ViewCompat.getLayoutDirection(parent) == ViewCompat.LAYOUT_DIRECTION_RTL) { + outRect.right = startMargin + outRect.left = endMargin + } else { + outRect.left = startMargin + outRect.right = endMargin + } } } } diff --git a/java/src/com/android/intentresolver/widget/ScrollableImagePreviewView.kt b/java/src/com/android/intentresolver/widget/ScrollableImagePreviewView.kt index 9c948bd9..583a2887 100644 --- a/java/src/com/android/intentresolver/widget/ScrollableImagePreviewView.kt +++ b/java/src/com/android/intentresolver/widget/ScrollableImagePreviewView.kt @@ -30,6 +30,7 @@ import android.widget.ImageView import android.widget.TextView import androidx.annotation.VisibleForTesting import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.ViewCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.android.intentresolver.R @@ -470,9 +471,14 @@ class ScrollableImagePreviewView : RecyclerView, ImagePreviewView { override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: State) { val itemCount = parent.adapter?.itemCount ?: return val pos = parent.getChildAdapterPosition(view) - var leftMargin = if (pos == 0) outerSpacing else innerSpacing - var rightMargin = if (pos == itemCount - 1) outerSpacing else 0 - outRect.set(leftMargin, 0, rightMargin, 0) + var startMargin = if (pos == 0) outerSpacing else innerSpacing + var endMargin = if (pos == itemCount - 1) outerSpacing else 0 + + if (ViewCompat.getLayoutDirection(parent) == ViewCompat.LAYOUT_DIRECTION_RTL) { + outRect.set(endMargin, 0, startMargin, 0) + } else { + outRect.set(startMargin, 0, endMargin, 0) + } } } -- cgit v1.2.3-59-g8ed1b