add support for fedilinks.org (aka the web+ap URI scheme)

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java | 1 +
src/main/java/eu/siacs/conversations/utils/Patterns.java    | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java 🔗

@@ -62,6 +62,7 @@ public class MyLinkify {
                     case "http", "https" -> Patterns.URI_HTTP.matcher(match).matches();
                     case "geo" -> Patterns.URI_GEO.matcher(match).matches();
                     case "xmpp" -> new XmppUri(Uri.parse(match.toString())).isValidJid();
+                    case "web+ap" -> Patterns.URI_WEB_AP.matcher(match).matches();
                     default -> true;
                 };
             };

src/main/java/eu/siacs/conversations/utils/Patterns.java 🔗

@@ -6,13 +6,15 @@ public class Patterns {
 
     public static final Pattern URI_GENERIC =
             Pattern.compile(
-                    "(?<=^|\\s)(tel|xmpp|http|https|geo|mailto):[a-zA-Z0-9\\-._~:/?#\\[\\]@!$&'()*+,;=%]+");
+                    "(?<=^|\\s)(tel|xmpp|http|https|geo|mailto|web\\+ap):[a-zA-Z0-9\\-._~:/?#\\[\\]@!$&'()*+,;=%]+");
 
     public static final Pattern URI_TEL =
             Pattern.compile("^tel:\\+?(\\d{1,4}[-./()\\s]?)*\\d{1,4}(;.*)?$");
 
     public static final Pattern URI_HTTP = Pattern.compile("https?://\\S+");
 
+    public static final Pattern URI_WEB_AP = Pattern.compile("web\\+ap://\\S+");
+
     public static Pattern URI_GEO =
             Pattern.compile(
                     "geo:(-?\\d+(?:\\.\\d+)?),(-?\\d+(?:\\.\\d+)?)(?:,-?\\d+(?:\\.\\d+)?)?(?:;crs=[\\w-]+)?(?:;u=\\d+(?:\\.\\d+)?)?(?:;[\\w-]+=(?:[\\w-_.!~*'()]|%[\\da-f][\\da-f])+)*(\\?z=\\d+)?",