summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2023-06-01 01:01:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-06-01 01:01:28 +0000
commitc58258e459c74de5223787990c3458735ce3861a (patch)
tree94a18ed0ecdf77f9ce62312a78d6a9d1c996854a /java
parentc6627b764fe7ccf585c8bbac26d47ccc14ccf9bf (diff)
parent664b0a3bcf346c720982f06bda091e4d444716a4 (diff)
Merge "Padding and color fixes to align with mocks" into udc-dev
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable/chooser_content_preview_rounded.xml8
-rw-r--r--java/res/layout/chooser_action_row.xml18
-rw-r--r--java/res/layout/chooser_action_view.xml4
-rw-r--r--java/res/layout/chooser_grid_preview_file.xml3
-rw-r--r--java/res/layout/chooser_grid_preview_files_text.xml5
-rw-r--r--java/res/layout/chooser_grid_preview_image.xml5
-rw-r--r--java/res/layout/chooser_grid_preview_text.xml18
-rw-r--r--java/res/layout/chooser_headline_row.xml2
-rw-r--r--java/res/values-h480dp/bools.xml20
-rw-r--r--java/res/values-h480dp/dimens.xml1
-rw-r--r--java/res/values/attrs.xml4
-rw-r--r--java/res/values/bools.xml21
-rw-r--r--java/res/values/dimens.xml8
-rw-r--r--java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java3
-rw-r--r--java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java4
-rw-r--r--java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java3
-rw-r--r--java/src/com/android/intentresolver/widget/ScrollableActionRow.kt26
-rw-r--r--java/src/com/android/intentresolver/widget/ScrollableImagePreviewView.kt12
18 files changed, 53 insertions, 112 deletions
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">
<solid
- android:color="?androidprv:attr/materialColorSurfaceBright" />
+ android:color="?androidprv:attr/materialColorSurfaceContainerHigh" />
<corners android:radius="16dp" />
-
- <padding
- android:left="16dp"
- android:top="12dp"
- android:right="16dp"
- android:bottom="12dp"/>
</shape>
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 @@
<merge
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto">
-
- <View
- android:id="@+id/actions_top_divider"
- android:layout_width="match_parent"
- android:layout_height="2dp"
- android:background="?androidprv:attr/materialColorSurfaceContainerHighest"
- />
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
<com.android.intentresolver.widget.ScrollableActionRow
android:id="@androidprv:id/chooser_action_row"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- app:horizontalActions="@bool/horizontal_actions"
android:gravity="center"/>
<View
android:layout_width="match_parent"
- android:layout_height="2dp"
+ android:layout_height="1dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginHorizontal="@dimen/chooser_edge_margin_normal"
+ android:layout_marginBottom="10dp"
android:background="?androidprv:attr/materialColorSurfaceContainerHighest"
/>
</merge>
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">
<include layout="@layout/chooser_headline_row"/>
@@ -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">
<com.android.intentresolver.widget.RoundedRectImageView
@@ -52,7 +52,6 @@
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/chooser_edge_margin_normal_half"
- android:layout_marginEnd="@dimen/chooser_edge_margin_normal_half"
android:maxLines="@integer/text_preview_lines"
android:ellipsize="end"
android:linksClickable="false"
diff --git a/java/res/layout/chooser_grid_preview_image.xml b/java/res/layout/chooser_grid_preview_image.xml
index 1384d0a4..4a832324 100644
--- a/java/res/layout/chooser_grid_preview_image.xml
+++ b/java/res/layout/chooser_grid_preview_image.xml
@@ -33,10 +33,9 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/chooser_preview_image_height_tall"
android:layout_gravity="center_horizontal"
- android:layout_marginBottom="@dimen/chooser_view_spacing"
- android:layout_marginHorizontal="@dimen/chooser_edge_margin_normal_half"
+ android:layout_marginBottom="8dp"
app:itemInnerSpacing="3dp"
- app:itemOuterSpacing="@dimen/chooser_edge_margin_normal_half"/>
+ app:itemOuterSpacing="@dimen/chooser_edge_margin_normal"/>
<include layout="@layout/chooser_action_row"/>
</LinearLayout>
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 @@
<FrameLayout
android:id="@+id/copy"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ style="?android:attr/borderlessButtonStyle"
app:layout_constraintStart_toEndOf="@androidprv:id/content_preview_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
- android:layout_margin="8dp"
- android:padding="8dp"
+ android:layout_marginHorizontal="4dp"
android:contentDescription="@android:string/copy"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="center"
android:tint="?androidprv:attr/materialColorOnSurfaceVariant"
android:src="@androidprv:drawable/ic_menu_copy_material"
/>
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"
>
<TextView
android:id="@+id/headline"
diff --git a/java/res/values-h480dp/bools.xml b/java/res/values-h480dp/bools.xml
deleted file mode 100644
index 761de1ea..00000000
--- a/java/res/values-h480dp/bools.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2023 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<resources>
- <bool name="horizontal_actions">false</bool>
-</resources>
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 @@
<dimen name="resolver_button_bar_spacing">8dp</dimen>
<dimen name="chooser_preview_width">-1px</dimen>
- <dimen name="chooser_view_spacing">18dp</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/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 @@
<attr name="itemOuterSpacing" format="dimension" />
<attr name="maxWidthHint" format="dimension" />
</declare-styleable>
-
- <declare-styleable name="ScrollableActionRow">
- <attr name="horizontalActions" format="boolean" />
- </declare-styleable>
</resources>
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 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <!-- Note that these values are for landscape phones, the values for all screens taller than
- 480dp are set in values-h480dp/bools.xml -->
- <bool name="horizontal_actions">true</bool>
-</resources>
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 @@
<dimen name="chooser_corner_radius_small">14dp</dimen>
<dimen name="chooser_row_text_option_translate">25dp</dimen>
<dimen name="chooser_edge_margin_thin">8dp</dimen>
- <dimen name="chooser_edge_margin_normal">24dp</dimen>
- <dimen name="chooser_edge_margin_normal_half">12dp</dimen>
+ <dimen name="chooser_edge_margin_normal">16dp</dimen>
+ <dimen name="chooser_edge_margin_normal_half">8dp</dimen>
<dimen name="chooser_preview_image_font_size">20sp</dimen>
<dimen name="chooser_preview_image_border">1dp</dimen>
<dimen name="chooser_preview_image_width">120dp</dimen>
@@ -55,12 +55,12 @@
<dimen name="chooser_action_view_icon_size">22dp</dimen>
<dimen name="chooser_action_margin">0dp</dimen>
<dimen name="modify_share_text_toggle_max_width">150dp</dimen>
+ <dimen name="chooser_view_spacing">16dp</dimen>
<!-- Note that the values in this section are for landscape phones. For screen configs taller
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_preview_image_height_tall">64dp</dimen>
+ <dimen name="chooser_preview_image_height_tall">46dp</dimen>
<dimen name="grid_padding_top">6dp</dimen>
<dimen name="width_text_image_preview_size">46dp</dimen>
<!-- END SECTION -->
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<ActionRow.Action> 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<ActionRow.Action> 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<ActionRow.Action> 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<ActionRow.Action>) {
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)
+ }
}
}