From b047f8131b95e9912761e7d39dadc87ce2a36a17 Mon Sep 17 00:00:00 2001 From: Drakeet Date: Wed, 4 Mar 2020 23:05:40 +0800 Subject: [PATCH] LinkifyCompatTextAddedListener --- .../noties/markwon/linkify/LinkifyPlugin.java | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java b/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java index 47347ed3..07fdf4db 100644 --- a/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java +++ b/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java @@ -77,7 +77,13 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { registry.require(CorePlugin.class, new Action() { @Override public void apply(@NonNull CorePlugin corePlugin) { - corePlugin.addOnTextAddedListener(new LinkifyTextAddedListener(mask, useCompat)); + final LinkifyTextAddedListener listener; + if (useCompat) { + listener = new LinkifyCompatTextAddedListener(mask); + } else { + listener = new LinkifyTextAddedListener(mask); + } + corePlugin.addOnTextAddedListener(listener); } }); } @@ -85,11 +91,9 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { private static class LinkifyTextAddedListener implements CorePlugin.OnTextAddedListener { private final int mask; - private final boolean useCompat; - LinkifyTextAddedListener(int mask, boolean useCompat) { + LinkifyTextAddedListener(int mask) { this.mask = mask; - this.useCompat = useCompat; } @Override @@ -128,12 +132,20 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { } } - private boolean addLinks(@NonNull Spannable text, @LinkifyMask int mask) { - if (useCompat) { - return LinkifyCompat.addLinks(text, mask); - } else { - return Linkify.addLinks(text, mask); - } + protected boolean addLinks(@NonNull Spannable text, @LinkifyMask int mask) { + return Linkify.addLinks(text, mask); + } + } + + private static class LinkifyCompatTextAddedListener extends LinkifyTextAddedListener { + + LinkifyCompatTextAddedListener(int mask) { + super(mask); + } + + @Override + protected boolean addLinks(@NonNull Spannable text, int mask) { + return LinkifyCompat.addLinks(text, mask); } } }