diff options
author | govenliu <govenliu@google.com> | 2020-07-29 12:43:44 +0800 |
---|---|---|
committer | govenliu <govenliu@google.com> | 2020-07-29 12:44:38 +0800 |
commit | 44382004ce395c4e9c3197bf5d52ca7643304c8d (patch) | |
tree | 3f143e29e3adbee4ea0a2c7d88f35191db1e932e /libs | |
parent | 6f18a7b69b569aafd5bfa0a8ca45b7413b077e87 (diff) | |
download | frameworks_opt_net_wifi-44382004ce395c4e9c3197bf5d52ca7643304c8d.tar.gz frameworks_opt_net_wifi-44382004ce395c4e9c3197bf5d52ca7643304c8d.tar.bz2 frameworks_opt_net_wifi-44382004ce395c4e9c3197bf5d52ca7643304c8d.zip |
[WifiTrackerLib] Remove ClickableSpan when helpUriString is empty
To prevent unexpected behavior on empty Span, return original string when the helpUriString parameter in linkifyAnnotation is empty.
Bug: 161951681
Test: atest com.android.wifitrackerlib.UtilsTest
Change-Id: Ib0fd7370a57e833cd04c258c25203a835e5168f1
Merged-In: I9ccb1494d46aca5a4736e9523426941e5599af19
Diffstat (limited to 'libs')
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java | 5 | ||||
-rw-r--r-- | libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java index 62bbe0f96..d1addede3 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java @@ -696,6 +696,11 @@ class Utils { /** Find the annotation of specified id in rawText and linkify it with helpUriString. */ static CharSequence linkifyAnnotation(Context context, CharSequence rawText, String id, String helpUriString) { + // Return original string when helpUriString is empty. + if (TextUtils.isEmpty(helpUriString)) { + return rawText; + } + SpannableString spannableText = new SpannableString(rawText); Annotation[] annotations = spannableText.getSpans(0, spannableText.length(), Annotation.class); diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java index 5532a2304..b009ac066 100644 --- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java +++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java @@ -415,6 +415,24 @@ public class UtilsTest { } @Test + public void testLinkifyAnnotation_annotationWithEmptyUriString_returnOriginalText() { + final String annotationId = "url"; + final CharSequence testText = "test text "; + final CharSequence testLink = "Learn More"; + final CharSequence expectedText = "test text Learn More"; + final SpannableStringBuilder builder = new SpannableStringBuilder(testText); + builder.append(testLink, new Annotation("key", annotationId), + Spanned.SPAN_INCLUSIVE_INCLUSIVE); + + final CharSequence output = linkifyAnnotation(mMockContext, builder, annotationId, ""); + + final SpannableString outputSpannableString = new SpannableString(output); + assertEquals(output.toString(), expectedText.toString()); + assertEquals(outputSpannableString.getSpans(0, outputSpannableString.length(), + ClickableSpan.class).length, 0); + } + + @Test public void testGetNetworkSelectionDescription_disabledWrongPassword_showsWrongPasswordLabel() { String expected = " (NETWORK_SELECTION_TEMPORARY_DISABLED 1:02:03) " + "NETWORK_SELECTION_DISABLED_BY_WRONG_PASSWORD=2"; |