aboutsummaryrefslogtreecommitdiffstats
path: root/libs/emojicon/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'libs/emojicon/src/main')
-rw-r--r--libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java
index 5523314b..f611a263 100644
--- a/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java
+++ b/libs/emojicon/src/main/java/github/ankushsachdeva/emojicon/EmojiconHandler.java
@@ -1407,6 +1407,11 @@ public final class EmojiconHandler {
public static final Map<Pattern, Integer> ANDROID_EMOTICONS = new HashMap<Pattern, Integer>();
private static final Pattern TIME_AND_SCORING_PATTERN = Pattern.compile("[0-9]{1,3}:[0-9]{1,3}");
+ private static final Pattern XMPP_PATTERN = Pattern
+ .compile("xmpp\\:(?:(?:["
+ + Patterns.GOOD_IRI_CHAR
+ + "\\;\\/\\?\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])"
+ + "|(?:\\%[a-fA-F0-9]{2}))+");
private static final Spannable.Factory spannableFactory = Spannable.Factory
.getInstance();
@@ -1459,6 +1464,11 @@ public final class EmojiconHandler {
falsePositives.add(Pair.create(timeAndScoringMatcher.start(), timeAndScoringMatcher.end()));
}
+ Matcher xmppMatcher = XMPP_PATTERN.matcher(spannable);
+ while (xmppMatcher.find()) {
+ falsePositives.add(Pair.create(xmppMatcher.start(), xmppMatcher.end()));
+ }
+
Map<Pattern, Integer> emoticons = ANDROID_EMOTICONS;
for (Map.Entry<Pattern, Integer> entry : emoticons.entrySet()) {
Matcher matcher = entry.getKey().matcher(spannable);