diff --git a/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java b/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java index e502780b73c8f1096d5006a335ddf9c48c41edbb..5e768692ac41ac5a32531acc10801955bdfc20b7 100644 --- a/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java +++ b/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; }; }; diff --git a/src/main/java/eu/siacs/conversations/utils/Patterns.java b/src/main/java/eu/siacs/conversations/utils/Patterns.java index 61d9bb3da035ad6c8f7392c878f9515dd56e70e9..adaf77316ff5f4fc6e32a656a214042e5bd1600a 100644 --- a/src/main/java/eu/siacs/conversations/utils/Patterns.java +++ b/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+)?",