From e6a9f21e66371f6234f916345233a8f65871e80e Mon Sep 17 00:00:00 2001 From: Andrey Yepin Date: Wed, 19 Feb 2025 14:43:13 -0800 Subject: Update the text preview UI copy button content description Update the text preview UI copy button content description from "copy" to either "Copy text" or "Copy link" depending whether the shared text is a link. Fix: 395683735 Test: atest IntentResolver-tests-unit Test: manual testing: share a text and a link and check TalkBack announcement for the button. Flag: EXEMPT bug fix Change-Id: I668c2fd7e7f0a025c75e43a8a49541ebf3a94730 --- .../contentpreview/HeadlineGenerator.kt | 2 ++ .../contentpreview/HeadlineGeneratorImpl.kt | 29 ++++++++++++---------- .../contentpreview/TextContentPreviewUi.java | 2 ++ 3 files changed, 20 insertions(+), 13 deletions(-) (limited to 'java/src/com') diff --git a/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt b/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt index 059ee083..9c4122bb 100644 --- a/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt +++ b/java/src/com/android/intentresolver/contentpreview/HeadlineGenerator.kt @@ -38,4 +38,6 @@ interface HeadlineGenerator { fun getFilesHeadline(count: Int): String fun getNotItemsSelectedHeadline(): String + + fun getCopyButtonContentDescription(sharedText: CharSequence): String } diff --git a/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt b/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt index 822d3097..ca01875b 100644 --- a/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt +++ b/java/src/com/android/intentresolver/contentpreview/HeadlineGeneratorImpl.kt @@ -33,11 +33,8 @@ 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 -@Inject -constructor( - @ApplicationContext private val context: Context, -) : HeadlineGenerator { +class HeadlineGeneratorImpl @Inject constructor(@ApplicationContext private val context: Context) : + HeadlineGenerator { override fun getTextHeadline(text: CharSequence): String { return context.getString( getTemplateResource(text, R.string.sharing_link, R.string.sharing_text) @@ -53,9 +50,9 @@ constructor( getTemplateResource( text, R.string.sharing_images_with_link, - R.string.sharing_images_with_text + R.string.sharing_images_with_text, ), - count + count, ) } @@ -64,9 +61,9 @@ constructor( getTemplateResource( text, R.string.sharing_videos_with_link, - R.string.sharing_videos_with_text + R.string.sharing_videos_with_text, ), - count + count, ) } @@ -75,9 +72,9 @@ constructor( getTemplateResource( text, R.string.sharing_files_with_link, - R.string.sharing_files_with_text + R.string.sharing_files_with_text, ), - count + count, ) } @@ -96,11 +93,17 @@ constructor( override fun getNotItemsSelectedHeadline(): String = context.getString(R.string.select_items_to_share) + override fun getCopyButtonContentDescription(sharedText: CharSequence): String { + return context.getString( + getTemplateResource(sharedText, R.string.copy_link, R.string.copy_text) + ) + } + private fun getPluralString(@StringRes templateResource: Int, count: Int): String { return PluralsMessageFormatter.format( context.resources, mapOf(PLURALS_COUNT to count), - templateResource + templateResource, ) } @@ -108,7 +111,7 @@ constructor( private fun getTemplateResource( text: CharSequence, @StringRes linkResource: Int, - @StringRes nonLinkResource: Int + @StringRes nonLinkResource: Int, ): Int { return if (text.toString().isHttpUri()) linkResource else nonLinkResource } diff --git a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java index 45a0130d..8592e6ae 100644 --- a/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/TextContentPreviewUi.java @@ -142,6 +142,8 @@ class TextContentPreviewUi extends ContentPreviewUi { View copyButton = contentPreviewLayout.findViewById(R.id.copy); if (copyButton != null) { if (onCopy != null) { + copyButton.setContentDescription( + mHeadlineGenerator.getCopyButtonContentDescription(mSharingText)); copyButton.setOnClickListener((v) -> onCopy.run()); ViewCompat.setAccessibilityDelegate( copyButton, -- cgit v1.2.3-59-g8ed1b