From 90527604393a9156da3d07b50b137672e8198293 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 21 Jun 2020 14:54:54 +0200 Subject: [PATCH] Auto link ftp, fish, telnet, xmpp, geo and tel --- .../main/java/eu/faircode/email/HtmlHelper.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 0c629a4bb1..452ac19289 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -52,6 +52,7 @@ import android.text.style.TypefaceSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; import android.util.Base64; +import android.util.Patterns; import android.view.View; import android.view.textclassifier.TextClassificationManager; import android.view.textclassifier.TextLanguage; @@ -881,9 +882,20 @@ public class HtmlHelper { // Autolink if (view) { + // https://en.wikipedia.org/wiki/List_of_URI_schemes + // ftp (generic syntax) + // fish://[[:]@][:] + // telnet://:@[:/] + // geo:,[,][;u=] + // tel: + // xmpp:[]@[:]/[][?] final Pattern pattern = Pattern.compile( PatternsCompat.AUTOLINK_EMAIL_ADDRESS.pattern() + "|" + - PatternsCompat.AUTOLINK_WEB_URL.pattern()); + PatternsCompat.AUTOLINK_WEB_URL.pattern() + .replace("(?i:http|https|rtsp)://", + "(((?i:http|https|rtsp|ftp|fish|telnet)://)|((?i:xmpp):))") + "|" + + "(?i:geo:\\d+,\\d+(,\\d+)?(;u=\\d+)?)|" + + "(?i:tel:" + Patterns.PHONE.pattern() + ")"); NodeTraversor.traverse(new NodeVisitor() { private int links = 0;