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); } } }