summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Remi NGUYEN VAN <reminv@google.com> 2023-03-22 09:00:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-22 09:00:35 +0000
commit39f28a664e4f693ea2c580e26e145d4bc27bc87d (patch)
treeb2774335f92d7772ed2d2834a5eb4e0131954b23 /java/src
parent534f80e0e0fc0615bfd6ae7291ff38b3ac3a8771 (diff)
parent6aaafb277958144a39f9ff4c8328a29eb2db6e38 (diff)
Merge "Revert "Add headline to sharesheet."" into udc-dev
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java4
-rw-r--r--java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java42
-rw-r--r--java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java17
-rw-r--r--java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java9
-rw-r--r--java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt35
-rw-r--r--java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt67
-rw-r--r--java/src/com/android/intentresolver/contentpreview/ImageContentPreviewUi.java21
-rw-r--r--java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java9
-rw-r--r--java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java100
9 files changed, 53 insertions, 251 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index 1dce3b97..341e1d52 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -84,7 +84,6 @@ import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.MultiDisplayResolveInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.contentpreview.ChooserContentPreviewUi;
-import com.android.intentresolver.contentpreview.HeadlineGeneratorImpl;
import com.android.intentresolver.flags.FeatureFlagRepository;
import com.android.intentresolver.flags.FeatureFlagRepositoryFactory;
import com.android.intentresolver.flags.Flags;
@@ -292,8 +291,7 @@ public class ChooserActivity extends ResolverActivity implements
createPreviewImageLoader(),
createChooserActionFactory(),
mEnterTransitionAnimationDelegate,
- mFeatureFlagRepository,
- new HeadlineGeneratorImpl(this));
+ mFeatureFlagRepository);
setAdditionalTargets(mChooserRequest.getAdditionalTargets());
diff --git a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java
index 6892b32c..de454cfd 100644
--- a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java
@@ -103,8 +103,7 @@ public final class ChooserContentPreviewUi {
ImageLoader imageLoader,
ActionFactory actionFactory,
TransitionElementStatusCallback transitionElementStatusCallback,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
mContentPreviewUi = createContentPreview(
targetIntent,
@@ -113,8 +112,7 @@ public final class ChooserContentPreviewUi {
imageLoader,
actionFactory,
transitionElementStatusCallback,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
if (mContentPreviewUi.getType() != CONTENT_PREVIEW_IMAGE) {
transitionElementStatusCallback.onAllTransitionElementsReady();
}
@@ -127,8 +125,7 @@ public final class ChooserContentPreviewUi {
ImageLoader imageLoader,
ActionFactory actionFactory,
TransitionElementStatusCallback transitionElementStatusCallback,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
/* In {@link android.content.Intent#getType}, the app may specify a very general mime type
* that broadly covers all data being shared, such as {@literal *}/* when sending an image
@@ -142,20 +139,12 @@ public final class ChooserContentPreviewUi {
if (!(isSend || isSendMultiple)
|| (type != null && ClipDescription.compareMimeTypes(type, "text/*"))) {
return createTextPreview(
- targetIntent,
- actionFactory,
- imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ targetIntent, actionFactory, imageLoader, featureFlagRepository);
}
List<Uri> uris = extractContentUris(targetIntent);
if (uris.isEmpty()) {
return createTextPreview(
- targetIntent,
- actionFactory,
- imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ targetIntent, actionFactory, imageLoader, featureFlagRepository);
}
ArrayList<FileInfo> files = new ArrayList<>(uris.size());
int previewCount = readFileInfo(contentResolver, typeClassifier, uris, files);
@@ -164,8 +153,7 @@ public final class ChooserContentPreviewUi {
files,
actionFactory,
imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
if (featureFlagRepository.isEnabled(Flags.SHARESHEET_SCROLLABLE_IMAGE_PREVIEW)) {
return new UnifiedContentPreviewUi(
@@ -175,16 +163,14 @@ public final class ChooserContentPreviewUi {
imageLoader,
typeClassifier,
transitionElementStatusCallback,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
if (previewCount < uris.size()) {
return new FileContentPreviewUi(
files,
actionFactory,
imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
// The legacy (3-image) image preview is on it's way out and it's unlikely that we'd end up
// here. To preserve the legacy behavior, before using it, check that all uris are images.
@@ -194,8 +180,7 @@ public final class ChooserContentPreviewUi {
files,
actionFactory,
imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
}
return new ImageContentPreviewUi(
@@ -207,8 +192,7 @@ public final class ChooserContentPreviewUi {
actionFactory,
imageLoader,
transitionElementStatusCallback,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
public int getPreferredContentPreview() {
@@ -323,8 +307,7 @@ public final class ChooserContentPreviewUi {
Intent targetIntent,
ChooserContentPreviewUi.ActionFactory actionFactory,
ImageLoader imageLoader,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
CharSequence sharingText = targetIntent.getCharSequenceExtra(Intent.EXTRA_TEXT);
String previewTitle = targetIntent.getStringExtra(Intent.EXTRA_TITLE);
ClipData previewData = targetIntent.getClipData();
@@ -341,8 +324,7 @@ public final class ChooserContentPreviewUi {
previewThumbnail,
actionFactory,
imageLoader,
- featureFlagRepository,
- headlineGenerator);
+ featureFlagRepository);
}
private static List<Uri> extractContentUris(Intent targetIntent) {
diff --git a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java
index a6bc2164..79444b4e 100644
--- a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java
@@ -24,7 +24,6 @@ import android.content.res.Resources;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.UserHandle;
-import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -115,21 +114,7 @@ abstract class ContentPreviewUi {
fadeAnim.start();
}
- protected static void displayHeadline(ViewGroup layout, String headline) {
- if (layout != null) {
- TextView titleView = layout.findViewById(R.id.headline);
- if (titleView != null) {
- if (!TextUtils.isEmpty(headline)) {
- titleView.setText(headline);
- titleView.setVisibility(View.VISIBLE);
- } else {
- titleView.setVisibility(View.GONE);
- }
- }
- }
- }
-
- protected static void displayModifyShareAction(
+ protected static void displayPayloadReselectionAction(
ViewGroup layout,
ChooserContentPreviewUi.ActionFactory actionFactory,
FeatureFlagRepository featureFlagRepository) {
diff --git a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java
index 52e20cf0..2c5def8b 100644
--- a/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/FileContentPreviewUi.java
@@ -45,19 +45,16 @@ class FileContentPreviewUi extends ContentPreviewUi {
private final ChooserContentPreviewUi.ActionFactory mActionFactory;
private final ImageLoader mImageLoader;
private final FeatureFlagRepository mFeatureFlagRepository;
- private final HeadlineGenerator mHeadlineGenerator;
FileContentPreviewUi(
List<FileInfo> files,
ChooserContentPreviewUi.ActionFactory actionFactory,
ImageLoader imageLoader,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
mFiles = files;
mActionFactory = actionFactory;
mImageLoader = imageLoader;
mFeatureFlagRepository = featureFlagRepository;
- mHeadlineGenerator = headlineGenerator;
}
@Override
@@ -68,7 +65,7 @@ class FileContentPreviewUi extends ContentPreviewUi {
@Override
public ViewGroup display(Resources resources, LayoutInflater layoutInflater, ViewGroup parent) {
ViewGroup layout = displayInternal(resources, layoutInflater, parent);
- displayModifyShareAction(layout, mActionFactory, mFeatureFlagRepository);
+ displayPayloadReselectionAction(layout, mActionFactory, mFeatureFlagRepository);
return layout;
}
@@ -80,8 +77,6 @@ class FileContentPreviewUi extends ContentPreviewUi {
final int uriCount = mFiles.size();
- displayHeadline(contentPreviewLayout, mHeadlineGenerator.getItemsHeadline(mFiles.size()));
-
if (uriCount == 0) {
contentPreviewLayout.setVisibility(View.GONE);
Log.i(TAG, "Appears to be no uris available in EXTRA_STREAM,"
diff --git a/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt b/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt
deleted file mode 100644
index e32bb5c4..00000000
--- a/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.intentresolver.contentpreview
-
-private const val PLURALS_COUNT = "count"
-
-/**
- * HeadlineGenerator generates the text to show at the top of the sharesheet as a brief
- * description of the content being shared.
- */
-interface HeadlineGenerator {
- fun getTextHeadline(text: CharSequence): String
-
- fun getImageWithTextHeadline(text: CharSequence): String
-
- fun getImagesHeadline(count: Int): String
-
- fun getVideosHeadline(count: Int): String
-
- fun getItemsHeadline(count: Int): String
-}
diff --git a/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt b/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt
deleted file mode 100644
index ae44294c..00000000
--- a/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.intentresolver.contentpreview
-
-import android.content.Context
-import com.android.intentresolver.R
-import android.util.PluralsMessageFormatter
-
-private const val PLURALS_COUNT = "count"
-
-/**
- * HeadlineGenerator generates the text to show at the top of the sharesheet as a brief
- * description of the content being shared.
- */
-class HeadlineGeneratorImpl(private val context: Context) : HeadlineGenerator {
- override fun getTextHeadline(text: CharSequence): String {
- if (text.toString().isHttpUri()) {
- return context.getString(R.string.sharing_link)
- }
- return context.getString(R.string.sharing_text)
- }
-
- override fun getImageWithTextHeadline(text: CharSequence): String {
- if (text.toString().isHttpUri()) {
- return context.getString(R.string.sharing_image_with_link)
- }
- return context.getString(R.string.sharing_image_with_text)
- }
-
- override fun getImagesHeadline(count: Int): String {
- return PluralsMessageFormatter.format(
- context.resources,
- mapOf(PLURALS_COUNT to count),
- R.string.sharing_images
- )
- }
-
- override fun getVideosHeadline(count: Int): String {
- return PluralsMessageFormatter.format(
- context.resources,
- mapOf(PLURALS_COUNT to count),
- R.string.sharing_videos
- )
- }
-
- override fun getItemsHeadline(count: Int): String {
- return PluralsMessageFormatter.format(
- context.resources,
- mapOf(PLURALS_COUNT to count),
- R.string.sharing_items
- )
- }
-}
diff --git a/java/src/com/android/intentresolver/contentpreview/ImageContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ImageContentPreviewUi.java
index f2c0564a..5f3bdf40 100644
--- a/java/src/com/android/intentresolver/contentpreview/ImageContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/ImageContentPreviewUi.java
@@ -54,7 +54,6 @@ class ImageContentPreviewUi extends ContentPreviewUi {
private final ImageLoader mImageLoader;
private final TransitionElementStatusCallback mTransitionElementStatusCallback;
private final FeatureFlagRepository mFeatureFlagRepository;
- private final HeadlineGenerator mHeadlineGenerator;
ImageContentPreviewUi(
List<Uri> imageUris,
@@ -62,15 +61,13 @@ class ImageContentPreviewUi extends ContentPreviewUi {
ChooserContentPreviewUi.ActionFactory actionFactory,
ImageLoader imageLoader,
TransitionElementStatusCallback transitionElementStatusCallback,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
mImageUris = imageUris;
mText = text;
mActionFactory = actionFactory;
mImageLoader = imageLoader;
mTransitionElementStatusCallback = transitionElementStatusCallback;
mFeatureFlagRepository = featureFlagRepository;
- mHeadlineGenerator = headlineGenerator;
mImageLoader.prePopulate(mImageUris);
}
@@ -83,7 +80,7 @@ class ImageContentPreviewUi extends ContentPreviewUi {
@Override
public ViewGroup display(Resources resources, LayoutInflater layoutInflater, ViewGroup parent) {
ViewGroup layout = displayInternal(layoutInflater, parent);
- displayModifyShareAction(layout, mActionFactory, mFeatureFlagRepository);
+ displayPayloadReselectionAction(layout, mActionFactory, mFeatureFlagRepository);
return layout;
}
@@ -116,8 +113,6 @@ class ImageContentPreviewUi extends ContentPreviewUi {
imagePreview.setTransitionElementStatusCallback(mTransitionElementStatusCallback);
imagePreview.setImages(mImageUris, mImageLoader);
- updateHeadline(contentPreviewLayout);
-
return contentPreviewLayout;
}
@@ -145,17 +140,6 @@ class ImageContentPreviewUi extends ContentPreviewUi {
com.android.internal.R.id.content_preview_image_area);
}
- private void updateHeadline(ViewGroup contentPreview) {
- CheckBox includeTextCheckbox = contentPreview.requireViewById(R.id.include_text_action);
- if (includeTextCheckbox.getVisibility() == View.VISIBLE
- && includeTextCheckbox.isChecked()) {
- displayHeadline(contentPreview, mHeadlineGenerator.getImageWithTextHeadline(mText));
- } else {
- displayHeadline(
- contentPreview, mHeadlineGenerator.getImagesHeadline(mImageUris.size()));
- }
- }
-
private void setTextInImagePreviewVisibility(
ViewGroup contentPreview, ChooserContentPreviewUi.ActionFactory actionFactory) {
int visibility = mFeatureFlagRepository.isEnabled(Flags.SHARESHEET_IMAGE_AND_TEXT_PREVIEW)
@@ -185,7 +169,6 @@ class ImageContentPreviewUi extends ContentPreviewUi {
TransitionManager.beginDelayedTransition((ViewGroup) textView.getParent());
textView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
shareTextAction.accept(!isChecked);
- updateHeadline(contentPreview);
});
}
actionView.setVisibility(visibility);
diff --git a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
index d0cba5bb..e143954e 100644
--- a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java
@@ -46,7 +46,6 @@ class TextContentPreviewUi extends ContentPreviewUi {
private final ImageLoader mImageLoader;
private final ChooserContentPreviewUi.ActionFactory mActionFactory;
private final FeatureFlagRepository mFeatureFlagRepository;
- private final HeadlineGenerator mHeadlineGenerator;
TextContentPreviewUi(
@Nullable CharSequence sharingText,
@@ -54,15 +53,13 @@ class TextContentPreviewUi extends ContentPreviewUi {
@Nullable Uri previewThumbnail,
ChooserContentPreviewUi.ActionFactory actionFactory,
ImageLoader imageLoader,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
mSharingText = sharingText;
mPreviewTitle = previewTitle;
mPreviewThumbnail = previewThumbnail;
mImageLoader = imageLoader;
mActionFactory = actionFactory;
mFeatureFlagRepository = featureFlagRepository;
- mHeadlineGenerator = headlineGenerator;
}
@Override
@@ -73,7 +70,7 @@ class TextContentPreviewUi extends ContentPreviewUi {
@Override
public ViewGroup display(Resources resources, LayoutInflater layoutInflater, ViewGroup parent) {
ViewGroup layout = displayInternal(layoutInflater, parent);
- displayModifyShareAction(layout, mActionFactory, mFeatureFlagRepository);
+ displayPayloadReselectionAction(layout, mActionFactory, mFeatureFlagRepository);
return layout;
}
@@ -125,8 +122,6 @@ class TextContentPreviewUi extends ContentPreviewUi {
bitmap));
}
- displayHeadline(contentPreviewLayout, mHeadlineGenerator.getTextHeadline(mSharingText));
-
return contentPreviewLayout;
}
diff --git a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
index 2d2ae52b..c4e6feb7 100644
--- a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
+++ b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java
@@ -55,7 +55,6 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
private final MimeTypeClassifier mTypeClassifier;
private final TransitionElementStatusCallback mTransitionElementStatusCallback;
private final FeatureFlagRepository mFeatureFlagRepository;
- private final HeadlineGenerator mHeadlineGenerator;
UnifiedContentPreviewUi(
List<FileInfo> files,
@@ -64,8 +63,7 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
ImageLoader imageLoader,
MimeTypeClassifier typeClassifier,
TransitionElementStatusCallback transitionElementStatusCallback,
- FeatureFlagRepository featureFlagRepository,
- HeadlineGenerator headlineGenerator) {
+ FeatureFlagRepository featureFlagRepository) {
mFiles = files;
mText = text;
mActionFactory = actionFactory;
@@ -73,7 +71,6 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
mTypeClassifier = typeClassifier;
mTransitionElementStatusCallback = transitionElementStatusCallback;
mFeatureFlagRepository = featureFlagRepository;
- mHeadlineGenerator = headlineGenerator;
mImageLoader.prePopulate(mFiles.stream()
.map(FileInfo::getPreviewUri)
@@ -89,7 +86,7 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
@Override
public ViewGroup display(Resources resources, LayoutInflater layoutInflater, ViewGroup parent) {
ViewGroup layout = displayInternal(layoutInflater, parent);
- displayModifyShareAction(layout, mActionFactory, mFeatureFlagRepository);
+ displayPayloadReselectionAction(layout, mActionFactory, mFeatureFlagRepository);
return layout;
}
@@ -118,47 +115,20 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
return contentPreviewLayout;
}
+ setTextInImagePreviewVisibility(contentPreviewLayout, mActionFactory);
imagePreview.setTransitionElementStatusCallback(mTransitionElementStatusCallback);
-
- List<ScrollableImagePreviewView.Preview> previews = new ArrayList<>();
- boolean allImages = !mFiles.isEmpty();
- boolean allVideos = !mFiles.isEmpty();
- for (FileInfo fileInfo : mFiles) {
- ScrollableImagePreviewView.PreviewType previewType =
- getPreviewType(fileInfo.getMimeType());
- allImages = allImages && previewType == ScrollableImagePreviewView.PreviewType.Image;
- allVideos = allVideos && previewType == ScrollableImagePreviewView.PreviewType.Video;
-
- if (fileInfo.getPreviewUri() != null) {
- previews.add(new ScrollableImagePreviewView.Preview(
- previewType,
- fileInfo.getPreviewUri()));
- }
- }
+ List<ScrollableImagePreviewView.Preview> previews = mFiles.stream()
+ .filter(fileInfo -> fileInfo.getPreviewUri() != null)
+ .map(fileInfo ->
+ new ScrollableImagePreviewView.Preview(
+ getPreviewType(fileInfo.getMimeType()),
+ fileInfo.getPreviewUri()))
+ .toList();
imagePreview.setPreviews(
previews,
mFiles.size() - previews.size(),
mImageLoader);
- if (mFeatureFlagRepository.isEnabled(Flags.SHARESHEET_IMAGE_AND_TEXT_PREVIEW)
- && !TextUtils.isEmpty(mText)
- && mFiles.size() == 1
- && allImages) {
- setTextInImagePreviewVisibility(contentPreviewLayout, mActionFactory);
- updateTextWithImageHeadline(contentPreviewLayout);
- } else {
- if (allImages) {
- displayHeadline(
- contentPreviewLayout, mHeadlineGenerator.getImagesHeadline(mFiles.size()));
- } else if (allVideos) {
- displayHeadline(
- contentPreviewLayout, mHeadlineGenerator.getVideosHeadline(mFiles.size()));
- } else {
- displayHeadline(
- contentPreviewLayout, mHeadlineGenerator.getItemsHeadline(mFiles.size()));
- }
- }
-
return contentPreviewLayout;
}
@@ -185,42 +155,38 @@ class UnifiedContentPreviewUi extends ContentPreviewUi {
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()) {
- displayHeadline(contentPreview, mHeadlineGenerator.getImageWithTextHeadline(mText));
- } else {
- displayHeadline(
- contentPreview, mHeadlineGenerator.getImagesHeadline(mFiles.size()));
- }
- }
-
private void setTextInImagePreviewVisibility(
ViewGroup contentPreview, ChooserContentPreviewUi.ActionFactory actionFactory) {
+ int visibility = mFeatureFlagRepository.isEnabled(Flags.SHARESHEET_IMAGE_AND_TEXT_PREVIEW)
+ && !TextUtils.isEmpty(mText)
+ ? View.VISIBLE
+ : View.GONE;
+
final TextView textView = contentPreview
.requireViewById(com.android.internal.R.id.content_preview_text);
CheckBox actionView = contentPreview
.requireViewById(R.id.include_text_action);
- textView.setVisibility(View.VISIBLE);
- boolean isLink = HttpUriMatcher.isHttpUri(mText.toString());
+ textView.setVisibility(visibility);
+ boolean isLink = visibility == View.VISIBLE && HttpUriMatcher.isHttpUri(mText.toString());
textView.setAutoLinkMask(isLink ? Linkify.WEB_URLS : 0);
textView.setText(mText);
- final int[] actionLabels = isLink
- ? new int[] { R.string.include_link, R.string.exclude_link }
- : new int[] { R.string.include_text, R.string.exclude_text };
- final Consumer<Boolean> shareTextAction = actionFactory.getExcludeSharedTextAction();
- actionView.setChecked(true);
- actionView.setText(actionLabels[1]);
- shareTextAction.accept(false);
- actionView.setOnCheckedChangeListener((view, isChecked) -> {
- view.setText(actionLabels[isChecked ? 1 : 0]);
- TransitionManager.beginDelayedTransition((ViewGroup) textView.getParent());
- textView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
- shareTextAction.accept(!isChecked);
- updateTextWithImageHeadline(contentPreview);
- });
- actionView.setVisibility(View.VISIBLE);
+ if (visibility == View.VISIBLE) {
+ final int[] actionLabels = isLink
+ ? new int[] { R.string.include_link, R.string.exclude_link }
+ : new int[] { R.string.include_text, R.string.exclude_text };
+ final Consumer<Boolean> shareTextAction = actionFactory.getExcludeSharedTextAction();
+ actionView.setChecked(true);
+ actionView.setText(actionLabels[1]);
+ shareTextAction.accept(false);
+ actionView.setOnCheckedChangeListener((view, isChecked) -> {
+ view.setText(actionLabels[isChecked ? 1 : 0]);
+ TransitionManager.beginDelayedTransition((ViewGroup) textView.getParent());
+ textView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
+ shareTextAction.accept(!isChecked);
+ });
+ }
+ actionView.setVisibility(visibility);
}
private ScrollableImagePreviewView.PreviewType getPreviewType(String mimeType) {