From 8df733e65ce6787ef42a1461068dee43efaefe67 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 4 Jul 2021 20:41:13 +0200 Subject: [PATCH] Decode tel URIs --- .../eu/faircode/email/FragmentDialogOpenLink.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index 9b5e654c52..de49bf4f8d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -550,16 +550,23 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { } private Spanned format(Uri uri, Context context) { + String scheme = uri.getScheme(); + String host = uri.getHost(); String text = uri.toString(); SpannableStringBuilder ssb = new SpannableStringBuilder(text); try { - String host = uri.getHost(); int textColorLink = Helper.resolveColor(context, android.R.attr.textColorLink); - if (host == null && "mailto".equals(uri.getScheme())) { - MailTo email = MailTo.parse(uri.toString()); - host = UriHelper.getEmailDomain(email.getTo()); + if ("tel".equals(scheme)) { + // tel://+123%2045%20678%123456 + host = Uri.decode(host); + text = "tel://" + host; + } else if ("mailto".equals(scheme)) { + if (host != null) { + MailTo email = MailTo.parse(uri.toString()); + host = UriHelper.getEmailDomain(email.getTo()); + } } if (host != null) {