From 150f8b476d622b592ce9192aed2e106076f2f67e Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Tue, 31 Jan 2023 14:09:01 -0800 Subject: Enable scrollable image preview view Enable scrollable image preview view under a feature flag. Bug: 262280076 Test: manual test Test: atest IntentResolverUnitTests with the both flag values Change-Id: I86050f1e9193412d15fb35a162a0405cf8287401 --- .../android/intentresolver/ChooserContentPreviewUi.java | 17 +++++++++++++++-- java/src/com/android/intentresolver/flags/Flags.kt | 6 ++++++ .../intentresolver/widget/ChooserImagePreviewView.kt | 3 ++- 3 files changed, 23 insertions(+), 3 deletions(-) (limited to 'java/src/com') diff --git a/java/src/com/android/intentresolver/ChooserContentPreviewUi.java b/java/src/com/android/intentresolver/ChooserContentPreviewUi.java index 553a36c6..9bef3553 100644 --- a/java/src/com/android/intentresolver/ChooserContentPreviewUi.java +++ b/java/src/com/android/intentresolver/ChooserContentPreviewUi.java @@ -363,8 +363,7 @@ public final class ChooserContentPreviewUi { @LayoutRes int actionRowLayout) { ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate( R.layout.chooser_grid_preview_image, parent, false); - ImagePreviewView imagePreview = contentPreviewLayout.findViewById( - com.android.internal.R.id.content_preview_image_area); + ImagePreviewView imagePreview = inflateImagePreviewView(contentPreviewLayout); final ActionRow actionRow = inflateActionRow(contentPreviewLayout, actionRowLayout); if (actionRow != null) { @@ -431,6 +430,20 @@ public final class ChooserContentPreviewUi { return actions; } + private ImagePreviewView inflateImagePreviewView(ViewGroup previewLayout) { + ViewStub stub = previewLayout.findViewById(R.id.image_preview_stub); + if (stub != null) { + int layoutId = + mFeatureFlagRepository.isEnabled(Flags.SHARESHEET_SCROLLABLE_IMAGE_PREVIEW) + ? R.layout.scrollable_image_preview_view + : R.layout.chooser_image_preview_view; + stub.setLayoutResource(layoutId); + stub.inflate(); + } + return previewLayout.findViewById( + com.android.internal.R.id.content_preview_image_area); + } + private static ViewGroup displayFileContentPreview( Intent targetIntent, Resources resources, diff --git a/java/src/com/android/intentresolver/flags/Flags.kt b/java/src/com/android/intentresolver/flags/Flags.kt index 92ee5115..027eb56c 100644 --- a/java/src/com/android/intentresolver/flags/Flags.kt +++ b/java/src/com/android/intentresolver/flags/Flags.kt @@ -35,6 +35,12 @@ object Flags { id = 1503, name = "sharesheet_image_text_preview" ) + // TODO(b/267355521) Tracking Bug + @JvmField + val SHARESHEET_SCROLLABLE_IMAGE_PREVIEW = unreleasedFlag( + 1504, "sharesheet_scrollable_image_preview" + ) + private fun unreleasedFlag(id: Int, name: String, teamfood: Boolean = false) = UnreleasedFlag(id, name, "systemui", teamfood) } diff --git a/java/src/com/android/intentresolver/widget/ChooserImagePreviewView.kt b/java/src/com/android/intentresolver/widget/ChooserImagePreviewView.kt index bf10bfaa..ca94a95d 100644 --- a/java/src/com/android/intentresolver/widget/ChooserImagePreviewView.kt +++ b/java/src/com/android/intentresolver/widget/ChooserImagePreviewView.kt @@ -57,7 +57,8 @@ class ChooserImagePreviewView : RelativeLayout, ImagePreviewView { private var transitionStatusElementCallback: TransitionElementStatusCallback? = null override fun onFinishInflate() { - LayoutInflater.from(context).inflate(R.layout.image_preview_view, this, true) + LayoutInflater.from(context) + .inflate(R.layout.chooser_image_preview_view_internals, this, true) mainImage = requireViewById(IntR.id.content_preview_image_1_large) secondLargeImage = requireViewById(IntR.id.content_preview_image_2_large) secondSmallImage = requireViewById(IntR.id.content_preview_image_2_small) -- cgit v1.2.3-59-g8ed1b