diff options
| author | 2023-08-28 19:15:06 -0700 | |
|---|---|---|
| committer | 2023-08-30 22:21:09 +0000 | |
| commit | 78928498cb20a929bb95042c8b265037262c61aa (patch) | |
| tree | c14d8a68902d46526fce78182b1aa004c0104d2f /java/src | |
| parent | 82190b4175f5aedcdbabe1ff1fcc23c508b5828c (diff) | |
Display rich text in text preview
Show rich text and title in Text preview and Image + Text preview UI.
Fix: 297493142
Test: intgration tests
Test: manual testing using ShareTest app checking that Texp preview UI
shows rich text in title (Intent.EXTRA_TITLE) and in text
(Intent.EXTRA_TEXT)
Test: manual testing checkin that Iamge + Text preview UI displays rich
text.
Change-Id: I681716c21b8940f3dc367273a104f8cc216b7206
Diffstat (limited to 'java/src')
| -rw-r--r-- | java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java | 2 | ||||
| -rw-r--r-- | java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java | 23 |
2 files changed, 18 insertions, 7 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java index d279f11f..b7650b9d 100644 --- a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java @@ -200,7 +200,7 @@ public final class ChooserContentPreviewUi { ImageLoader imageLoader, HeadlineGenerator headlineGenerator) { CharSequence sharingText = targetIntent.getCharSequenceExtra(Intent.EXTRA_TEXT); - String previewTitle = targetIntent.getStringExtra(Intent.EXTRA_TITLE); + CharSequence previewTitle = targetIntent.getCharSequenceExtra(Intent.EXTRA_TITLE); ClipData previewData = targetIntent.getClipData(); Uri previewThumbnail = null; if (previewData != null) { diff --git a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java index c38ed03a..b383fbcf 100644 --- a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java @@ -20,6 +20,7 @@ import static com.android.intentresolver.util.UriFilters.isOwnedByCurrentUser; import android.content.res.Resources; import android.net.Uri; +import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -93,13 +94,9 @@ class TextContentPreviewUi extends ContentPreviewUi { TextView textView = contentPreviewLayout.findViewById( com.android.internal.R.id.content_preview_text); - String text = mSharingText.toString(); - // If we're only previewing one line, then strip out newlines. - if (textView.getMaxLines() == 1) { - text = text.replace("\n", " "); - } - textView.setText(text); + textView.setText( + textView.getMaxLines() == 1 ? replaceLineBreaks(mSharingText) : mSharingText); TextView previewTitleView = contentPreviewLayout.findViewById( com.android.internal.R.id.content_preview_title); @@ -135,4 +132,18 @@ class TextContentPreviewUi extends ContentPreviewUi { return contentPreviewLayout; } + + @Nullable + private static CharSequence replaceLineBreaks(@Nullable CharSequence text) { + if (text == null) { + return null; + } + SpannableStringBuilder string = new SpannableStringBuilder(text); + for (int i = 0, size = string.length(); i < size; i++) { + if (string.charAt(i) == '\n') { + string.replace(i, i + 1, " "); + } + } + return string; + } } |