From a36c4deb98e45aa0994b3f5fe2937fb112d03451 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Wed, 5 Apr 2023 21:34:47 -0700 Subject: Replace view stubs with actual views With the feature flags removed, there are no layout variations for action row and image preivew anymore thus ViewStubs can be replaced with the actual views. Bug: 267355521 Bug: 266983432 Test: manual testing Change-Id: I96a3a3560bfa5f1fbf064bd6080c618467c7aca1 --- java/res/layout/chooser_grid_preview_file.xml | 10 ++++--- java/res/layout/chooser_grid_preview_image.xml | 24 ++++++++++----- java/res/layout/chooser_grid_preview_text.xml | 11 ++++--- java/res/layout/scrollable_chooser_action_row.xml | 30 ------------------- java/res/layout/scrollable_image_preview_view.xml | 35 ---------------------- .../contentpreview/ContentPreviewUi.java | 16 ---------- .../contentpreview/FileContentPreviewUi.java | 16 ++++------ .../contentpreview/TextContentPreviewUi.java | 15 ++++------ .../contentpreview/UnifiedContentPreviewUi.java | 30 ++++++------------- .../UnbundledChooserActivityTest.java | 17 ++++------- 10 files changed, 55 insertions(+), 149 deletions(-) delete mode 100644 java/res/layout/scrollable_chooser_action_row.xml delete mode 100644 java/res/layout/scrollable_image_preview_view.xml (limited to 'java') diff --git a/java/res/layout/chooser_grid_preview_file.xml b/java/res/layout/chooser_grid_preview_file.xml index 036c5318..bcc320d3 100644 --- a/java/res/layout/chooser_grid_preview_file.xml +++ b/java/res/layout/chooser_grid_preview_file.xml @@ -71,10 +71,12 @@ android:textAppearance="@style/TextAppearance.ChooserDefault" /> - + diff --git a/java/res/layout/chooser_grid_preview_image.xml b/java/res/layout/chooser_grid_preview_image.xml index 9ad594e8..43f6f4d1 100644 --- a/java/res/layout/chooser_grid_preview_image.xml +++ b/java/res/layout/chooser_grid_preview_image.xml @@ -19,6 +19,7 @@ - + android:layout_height="@dimen/chooser_preview_image_height_tall" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="@dimen/chooser_view_spacing" + android:background="?android:attr/colorBackground" + app:itemInnerSpacing="3dp" + app:itemOuterSpacing="@dimen/chooser_edge_margin_normal" + app:maxWidthHint="@dimen/chooser_width" /> - + diff --git a/java/res/layout/chooser_grid_preview_text.xml b/java/res/layout/chooser_grid_preview_text.xml index 47beaa5a..5e7afa46 100644 --- a/java/res/layout/chooser_grid_preview_text.xml +++ b/java/res/layout/chooser_grid_preview_text.xml @@ -84,9 +84,12 @@ android:focusable="true"/> - + + diff --git a/java/res/layout/scrollable_chooser_action_row.xml b/java/res/layout/scrollable_chooser_action_row.xml deleted file mode 100644 index cb5dabf0..00000000 --- a/java/res/layout/scrollable_chooser_action_row.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/java/res/layout/scrollable_image_preview_view.xml b/java/res/layout/scrollable_image_preview_view.xml deleted file mode 100644 index 0d41f1ae..00000000 --- a/java/res/layout/scrollable_image_preview_view.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - diff --git a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java index 15ba96c0..fcafe752 100644 --- a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java @@ -29,13 +29,10 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewStub; import android.view.animation.DecelerateInterpolator; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.LayoutRes; - import com.android.intentresolver.R; import com.android.intentresolver.widget.ActionRow; @@ -52,19 +49,6 @@ abstract class ContentPreviewUi { public abstract ViewGroup display( Resources resources, LayoutInflater layoutInflater, ViewGroup parent); - protected static int getActionRowLayout() { - return R.layout.scrollable_chooser_action_row; - } - - protected static ActionRow inflateActionRow(ViewGroup parent, @LayoutRes int actionRowLayout) { - final ViewStub stub = parent.findViewById(com.android.intentresolver.R.id.action_row_stub); - if (stub != null) { - stub.setLayoutResource(actionRowLayout); - stub.inflate(); - } - return parent.findViewById(com.android.internal.R.id.chooser_action_row); - } - protected static List createActions( List systemActions, List customActions) { diff --git a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java index 3012eec2..e814eb12 100644 --- a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java @@ -25,8 +25,6 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.LayoutRes; - import com.android.intentresolver.ImageLoader; import com.android.intentresolver.R; import com.android.intentresolver.widget.ActionRow; @@ -70,7 +68,6 @@ class FileContentPreviewUi extends ContentPreviewUi { private ViewGroup displayInternal( Resources resources, LayoutInflater layoutInflater, ViewGroup parent) { - @LayoutRes int actionRowLayout = getActionRowLayout(); ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate( R.layout.chooser_grid_preview_file, parent, false); @@ -110,13 +107,12 @@ class FileContentPreviewUi extends ContentPreviewUi { fileIconView.setImageResource(R.drawable.ic_file_copy); } - final ActionRow actionRow = inflateActionRow(contentPreviewLayout, actionRowLayout); - if (actionRow != null) { - actionRow.setActions( - createActions( - createFilePreviewActions(), - mActionFactory.createCustomActions())); - } + final ActionRow actionRow = + contentPreviewLayout.findViewById(com.android.internal.R.id.chooser_action_row); + actionRow.setActions( + createActions( + createFilePreviewActions(), + mActionFactory.createCustomActions())); return contentPreviewLayout; } diff --git a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java index 70df6479..ece0c312 100644 --- a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java @@ -25,7 +25,6 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.LayoutRes; import androidx.annotation.Nullable; import com.android.intentresolver.ImageLoader; @@ -76,17 +75,15 @@ class TextContentPreviewUi extends ContentPreviewUi { private ViewGroup displayInternal( LayoutInflater layoutInflater, ViewGroup parent) { - @LayoutRes int actionRowLayout = getActionRowLayout(); ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate( R.layout.chooser_grid_preview_text, parent, false); - final ActionRow actionRow = inflateActionRow(contentPreviewLayout, actionRowLayout); - if (actionRow != null) { - actionRow.setActions( - createActions( - createTextPreviewActions(), - mActionFactory.createCustomActions())); - } + final ActionRow actionRow = + contentPreviewLayout.findViewById(com.android.internal.R.id.chooser_action_row); + actionRow.setActions( + createActions( + createTextPreviewActions(), + mActionFactory.createCustomActions())); if (mSharingText == null) { contentPreviewLayout diff --git a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java index 00a11e30..748f7421 100644 --- a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java @@ -26,11 +26,9 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewStub; import android.widget.CheckBox; import android.widget.TextView; -import androidx.annotation.LayoutRes; import androidx.annotation.Nullable; import com.android.intentresolver.ImageLoader; @@ -89,18 +87,17 @@ class UnifiedContentPreviewUi extends ContentPreviewUi { } private ViewGroup displayInternal(LayoutInflater layoutInflater, ViewGroup parent) { - @LayoutRes int actionRowLayout = getActionRowLayout(); ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate( R.layout.chooser_grid_preview_image, parent, false); - ScrollableImagePreviewView imagePreview = inflateImagePreviewView(contentPreviewLayout); - - final ActionRow actionRow = inflateActionRow(contentPreviewLayout, actionRowLayout); - if (actionRow != null) { - actionRow.setActions( - createActions( - createImagePreviewActions(), - mActionFactory.createCustomActions())); - } + ScrollableImagePreviewView imagePreview = + contentPreviewLayout.findViewById(R.id.scrollable_image_preview); + + final ActionRow actionRow = + contentPreviewLayout.findViewById(com.android.internal.R.id.chooser_action_row); + actionRow.setActions( + createActions( + createImagePreviewActions(), + mActionFactory.createCustomActions())); if (mFiles.size() == 0) { Log.i( @@ -167,15 +164,6 @@ class UnifiedContentPreviewUi extends ContentPreviewUi { return actions; } - private ScrollableImagePreviewView inflateImagePreviewView(ViewGroup previewLayout) { - ViewStub stub = previewLayout.findViewById(R.id.image_preview_stub); - if (stub != null) { - stub.setLayoutResource(R.layout.scrollable_image_preview_view); - stub.inflate(); - } - return previewLayout.findViewById(R.id.scrollable_image_preview); - } - private void updateTextWithImageHeadline(ViewGroup contentPreview) { CheckBox actionView = contentPreview.requireViewById(R.id.include_text_action); if (actionView.getVisibility() == View.VISIBLE && actionView.isChecked()) { diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java index eb340224..39357a4d 100644 --- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java +++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java @@ -91,7 +91,6 @@ import android.util.HashedStringCache; import android.util.Pair; import android.util.SparseArray; import android.view.View; -import android.view.ViewGroup; import androidx.annotation.CallSuper; import androidx.annotation.NonNull; @@ -919,23 +918,17 @@ public class UnbundledChooserActivityTest { setupResolverControllers(resolvedComponentInfos); mActivityRule.launchActivity(Intent.createChooser(sendIntent, null)); waitForIdle(); - onView(withId(com.android.internal.R.id.content_preview_image_area)) + onView(withId(R.id.scrollable_image_preview)) .check((view, exception) -> { if (exception != null) { throw exception; } - ViewGroup parent = (ViewGroup) view; - ArrayList visibleViews = new ArrayList<>(); - for (int i = 0, count = parent.getChildCount(); i < count; i++) { - View child = parent.getChildAt(i); - if (child.getVisibility() == View.VISIBLE) { - visibleViews.add(child); - } - } - assertThat(visibleViews.size(), is(1)); + RecyclerView recyclerView = (RecyclerView) view; + assertThat(recyclerView.getAdapter().getItemCount(), is(1)); + assertThat(recyclerView.getChildCount(), is(1)); assertThat( "image preview view is fully visible", - isDisplayed().matches(visibleViews.get(0))); + isDisplayed().matches(recyclerView.getChildAt(0))); }); } -- cgit v1.2.3-59-g8ed1b