diff options
author | 2022-05-16 20:22:13 +0000 | |
---|---|---|
committer | 2022-05-16 20:29:42 +0000 | |
commit | b63f6f42ce85358e48fe50e0343e300b5d0888a9 (patch) | |
tree | 43a4dd4cad94e9f83b68b7ead5da4a246fc1d2f8 /WifiDialog/src | |
parent | 2a8aef69d8faaa55cbb146e96b6a9368dd5c9ed7 (diff) |
Do not set URL span if span start/end are invalid
The URL span for a wifi dialog's message is set with 0 start/end index
if there is no URL needed. However, this causes an exception if the text
is modified by an accessibility mode (b/169417148). Thus we should avoid
setting the URL span at all if it isn't needed to avoid this bug.
Bug: 232272207
Test: Turn Settings->Accessibility->TalkBack on, launch dialog with
`adb shell cmd wifi launch-dialog-simple -m message` and verify it
doesn't crash.
Change-Id: Ia6cfc94128df3f2a850edea03c2484c9bf179141
Diffstat (limited to 'WifiDialog/src')
-rw-r--r-- | WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java index c09d3a2d5e..62497d99fb 100644 --- a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java +++ b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java @@ -393,8 +393,11 @@ public class WifiDialogActivity extends Activity { SpannableString spannableMessage = null; if (message != null) { spannableMessage = new SpannableString(message); - spannableMessage.setSpan(new URLSpan(messageUrl), messageUrlStart, messageUrlEnd, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + if (messageUrlStart >= 0 && messageUrlEnd <= message.length() + && messageUrlStart < messageUrlEnd) { + spannableMessage.setSpan(new URLSpan(messageUrl), messageUrlStart, messageUrlEnd, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } } AlertDialog dialog = new AlertDialog.Builder(this) .setTitle(title) |