Reduce preview height on landscape phones.
On landscape phones:
- Hide all image previews except in the image+text case where it's now
much smaller.
- Increase max width for custom actions.
- Hide text title
- Remove minimum height for text preview container.
Bug: 267522604
Test: Manual tests on tablets and phones in both rotations.
Test: atest IntentResolverUnitTests
Change-Id: I7ad8d0b94f7133b36ce0d60640a31f7ef6d8cd7d
diff --git a/java/res/layout/chooser_action_view.xml b/java/res/layout/chooser_action_view.xml
index 724274a..a5436ed 100644
--- a/java/res/layout/chooser_action_view.xml
+++ b/java/res/layout/chooser_action_view.xml
@@ -19,7 +19,7 @@
android:drawablePadding="8dp"
android:textColor="?android:attr/textColorPrimary"
android:textSize="12sp"
- android:maxWidth="80dp"
+ android:maxWidth="@dimen/chooser_action_max_width"
android:clickable="true"
android:drawableTint="?android:attr/textColorPrimary"
android:drawableTintMode="src_in"
diff --git a/java/res/layout/chooser_grid_preview_files_text.xml b/java/res/layout/chooser_grid_preview_files_text.xml
index d46da2c..2b5586c 100644
--- a/java/res/layout/chooser_grid_preview_files_text.xml
+++ b/java/res/layout/chooser_grid_preview_files_text.xml
@@ -38,8 +38,8 @@
<com.android.intentresolver.widget.RoundedRectImageView
android:id="@+id/image_view"
- android:layout_width="100dp"
- android:layout_height="100dp"
+ android:layout_width="@dimen/width_text_image_preview_size"
+ android:layout_height="@dimen/width_text_image_preview_size"
android:scaleType="centerCrop"
app:radius="@dimen/chooser_corner_radius_small"
/>
diff --git a/java/res/layout/chooser_grid_preview_text.xml b/java/res/layout/chooser_grid_preview_text.xml
index e22cfbd..ca4604c 100644
--- a/java/res/layout/chooser_grid_preview_text.xml
+++ b/java/res/layout/chooser_grid_preview_text.xml
@@ -37,7 +37,6 @@
android:layout_marginRight="@dimen/chooser_edge_margin_normal"
android:layout_marginBottom="@dimen/chooser_view_spacing"
android:padding="@dimen/chooser_edge_margin_normal"
- android:minHeight="80dp"
android:background="@drawable/chooser_content_preview_rounded"
android:id="@+id/text_preview_layout">
diff --git a/java/res/values-h480dp/bools.xml b/java/res/values-h480dp/bools.xml
index 761de1e..749f7e8 100644
--- a/java/res/values-h480dp/bools.xml
+++ b/java/res/values-h480dp/bools.xml
@@ -17,4 +17,5 @@
<resources>
<bool name="horizontal_actions">false</bool>
+ <bool name="minimal_preview">false</bool>
</resources>
diff --git a/java/res/values-h480dp/dimens.xml b/java/res/values-h480dp/dimens.xml
index 41a5a98..3bfa308 100644
--- a/java/res/values-h480dp/dimens.xml
+++ b/java/res/values-h480dp/dimens.xml
@@ -21,7 +21,8 @@
<dimen name="resolver_title_padding_bottom">@dimen/resolver_edge_margin</dimen>
<dimen name="resolver_button_bar_spacing">8dp</dimen>
- <dimen name="chooser_preview_image_height_tall">192dp</dimen>
<dimen name="chooser_preview_width">-1px</dimen>
<dimen name="chooser_view_spacing">18dp</dimen>
+ <dimen name="chooser_action_max_width">80dp</dimen>
+ <dimen name="width_text_image_preview_size">100dp</dimen>
</resources>
diff --git a/java/res/values/bools.xml b/java/res/values/bools.xml
index fb7c747..38d97d8 100644
--- a/java/res/values/bools.xml
+++ b/java/res/values/bools.xml
@@ -15,7 +15,8 @@
-->
<resources>
- <!-- Note that this is the value for landscape phones, the value for all screens taller than
- 480dp is set in values-h480dp/bools.xml -->
+ <!-- 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>
+ <bool name="minimal_preview">true</bool>
</resources>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index cd1ae1c..e0a3b2c 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -49,14 +49,15 @@
<dimen name="resolver_empty_state_container_padding_top">48dp</dimen>
<dimen name="resolver_empty_state_container_padding_bottom">8dp</dimen>
<dimen name="resolver_profile_tab_margin">4dp</dimen>
-
+ <dimen name="chooser_preview_image_height_tall">192dp</dimen>
<dimen name="chooser_action_view_icon_size">22dp</dimen>
<dimen name="chooser_action_margin">0dp</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_preview_image_height_tall">64dp</dimen>
<dimen name="chooser_view_spacing">8dp</dimen>
+ <dimen name="chooser_action_max_width">120dp</dimen>
+ <dimen name="width_text_image_preview_size">32dp</dimen>
<!-- END SECTION -->
</resources>
diff --git a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
index 746da49..3f662ce 100644
--- a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
@@ -77,6 +77,9 @@
ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate(
R.layout.chooser_grid_preview_text, parent, false);
+ boolean minimalPreview =
+ parent.getContext().getResources().getBoolean(R.bool.minimal_preview);
+
final ActionRow actionRow =
contentPreviewLayout.findViewById(com.android.internal.R.id.chooser_action_row);
actionRow.setActions(
@@ -97,7 +100,7 @@
TextView previewTitleView = contentPreviewLayout.findViewById(
com.android.internal.R.id.content_preview_title);
- if (TextUtils.isEmpty(mPreviewTitle)) {
+ if (TextUtils.isEmpty(mPreviewTitle) || minimalPreview) {
previewTitleView.setVisibility(View.GONE);
} else {
previewTitleView.setText(mPreviewTitle);
@@ -105,7 +108,7 @@
ImageView previewThumbnailView = contentPreviewLayout.findViewById(
com.android.internal.R.id.content_preview_thumbnail);
- if (!validForContentPreview(mPreviewThumbnail)) {
+ if (!validForContentPreview(mPreviewThumbnail) || minimalPreview) {
previewThumbnailView.setVisibility(View.GONE);
} else {
mImageLoader.loadImage(
diff --git a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
index f52d233..737e30f 100644
--- a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
@@ -81,7 +81,7 @@
R.layout.chooser_grid_preview_image, parent, false);
ScrollableImagePreviewView imagePreview =
contentPreviewLayout.findViewById(R.id.scrollable_image_preview);
- imagePreview.setOnNoPreviewCallback(() -> imagePreview.setVisibility(View.GONE));
+ boolean showImages = !parent.getContext().getResources().getBoolean(R.bool.minimal_preview);
final ActionRow actionRow =
contentPreviewLayout.findViewById(com.android.internal.R.id.chooser_action_row);
@@ -100,8 +100,6 @@
return contentPreviewLayout;
}
- imagePreview.setTransitionElementStatusCallback(mTransitionElementStatusCallback);
-
List<ScrollableImagePreviewView.Preview> previews = new ArrayList<>();
boolean allImages = !mFiles.isEmpty();
boolean allVideos = !mFiles.isEmpty();
@@ -111,16 +109,24 @@
allImages = allImages && previewType == ScrollableImagePreviewView.PreviewType.Image;
allVideos = allVideos && previewType == ScrollableImagePreviewView.PreviewType.Video;
- if (fileInfo.getPreviewUri() != null) {
+ if (showImages && fileInfo.getPreviewUri() != null) {
previews.add(new ScrollableImagePreviewView.Preview(
previewType,
fileInfo.getPreviewUri()));
}
}
- imagePreview.setPreviews(
- previews,
- mFiles.size() - previews.size(),
- mImageLoader);
+
+ if (showImages) {
+ imagePreview.setOnNoPreviewCallback(() -> imagePreview.setVisibility(View.GONE));
+ imagePreview.setTransitionElementStatusCallback(mTransitionElementStatusCallback);
+ imagePreview.setPreviews(
+ previews,
+ mFiles.size() - previews.size(),
+ mImageLoader);
+ } else {
+ imagePreview.setVisibility(View.GONE);
+ mTransitionElementStatusCallback.onAllTransitionElementsReady();
+ }
if (allImages) {
displayHeadline(