From 869a475235833392042097d78424f57fe9e82e09 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 10 Dec 2017 21:35:54 +0100 Subject: Do not show xmpp uris as links that have invalid jids --- .../java/de/pixart/messenger/ui/adapter/MessageAdapter.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index acb8a6190..5e158415b 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -81,6 +81,7 @@ import de.pixart.messenger.utils.GeoHelper; import de.pixart.messenger.utils.Patterns; import de.pixart.messenger.utils.StylingHelper; import de.pixart.messenger.utils.UIHelper; +import de.pixart.messenger.utils.XmppUri; import de.pixart.messenger.xmpp.mam.MamReference; public class MessageAdapter extends ArrayAdapter implements CopyTextView.CopyHandler { @@ -120,6 +121,14 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } }; + private static final Linkify.MatchFilter XMPPURI_MATCH_FILTER = new Linkify.MatchFilter() { + @Override + public boolean acceptMatch(CharSequence s, int start, int end) { + XmppUri uri = new XmppUri(s.subSequence(start, end).toString()); + return uri.isJidValid(); + } + }; + private final ConversationActivity activity; private DisplayMetrics metrics; @@ -534,7 +543,7 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } } StylingHelper.format(body, viewHolder.messageBody.getCurrentTextColor()); - Linkify.addLinks(body, XMPP_PATTERN, "xmpp"); + Linkify.addLinks(body, XMPP_PATTERN, "xmpp", XMPPURI_MATCH_FILTER, null); Linkify.addLinks(body, Patterns.AUTOLINK_WEB_URL, "http", WEBURL_MATCH_FILTER, WEBURL_TRANSFORM_FILTER); Linkify.addLinks(body, GeoHelper.GEO_URI, "geo"); FixedURLSpan.fix(body); -- cgit v1.2.3