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(