summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorgovenliu <govenliu@google.com>2020-07-29 12:43:44 +0800
committergovenliu <govenliu@google.com>2020-07-29 12:44:38 +0800
commit44382004ce395c4e9c3197bf5d52ca7643304c8d (patch)
tree3f143e29e3adbee4ea0a2c7d88f35191db1e932e /libs
parent6f18a7b69b569aafd5bfa0a8ca45b7413b077e87 (diff)
downloadframeworks_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.java5
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java18
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";