From 9e8ed10e70efb6a026547f7484aa1380cd142555 Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Sat, 21 Jul 2018 18:09:30 +0300 Subject: [PATCH] Small cleanup --- .../ru/noties/markwon/SpannableBuilder.java | 60 +++++++++---------- .../noties/markwon/SpannableFactoryDef.java | 3 + .../renderer/html/SpannableHtmlParser.java | 49 --------------- 3 files changed, 31 insertions(+), 81 deletions(-) diff --git a/library/src/main/java/ru/noties/markwon/SpannableBuilder.java b/library/src/main/java/ru/noties/markwon/SpannableBuilder.java index 95570900..5cc2420f 100644 --- a/library/src/main/java/ru/noties/markwon/SpannableBuilder.java +++ b/library/src/main/java/ru/noties/markwon/SpannableBuilder.java @@ -166,7 +166,7 @@ public class SpannableBuilder { final int length = impl.length(); if (length > 0) { int amount = 0; - for (int i = length - 1; i >=0 ; i--) { + for (int i = length - 1; i >= 0; i--) { if (Character.isWhitespace(impl.charAt(i))) { amount += 1; } else { @@ -192,18 +192,35 @@ public class SpannableBuilder { final boolean reverse = spanned instanceof SpannedReversed; final Object[] spans = spanned.getSpans(0, spanned.length(), Object.class); + final int length = spans != null + ? spans.length + : 0; - iterate(reverse, spans, new Action() { - @Override - public void apply(Object o) { - setSpan( - o, - index + spanned.getSpanStart(o), - index + spanned.getSpanEnd(o), - spanned.getSpanFlags(o) - ); + if (length > 0) { + if (reverse) { + Object o; + for (int i = length - 1; i >= 0; i--) { + o = spans[i]; + setSpan( + o, + index + spanned.getSpanStart(o), + index + spanned.getSpanEnd(o), + spanned.getSpanFlags(o) + ); + } + } else { + Object o; + for (int i = 0; i < length; i++) { + o = spans[i]; + setSpan( + o, + index + spanned.getSpanStart(o), + index + spanned.getSpanEnd(o), + spanned.getSpanFlags(o) + ); + } } - }); + } } } @@ -221,25 +238,4 @@ public class SpannableBuilder { this.flags = flags; } } - - private interface Action { - void apply(Object o); - } - - private static void iterate(boolean reverse, @Nullable Object[] array, @NonNull Action action) { - final int length = array != null - ? array.length - : 0; - if (length > 0) { - if (reverse) { - for (int i = length - 1; i >= 0; i--) { - action.apply(array[i]); - } - } else { - for (int i = 0; i < length; i++) { - action.apply(array[i]); - } - } - } - } } diff --git a/library/src/main/java/ru/noties/markwon/SpannableFactoryDef.java b/library/src/main/java/ru/noties/markwon/SpannableFactoryDef.java index a7068f9b..f7672ac7 100644 --- a/library/src/main/java/ru/noties/markwon/SpannableFactoryDef.java +++ b/library/src/main/java/ru/noties/markwon/SpannableFactoryDef.java @@ -26,6 +26,9 @@ import ru.noties.markwon.spans.TableRowSpan; import ru.noties.markwon.spans.TaskListSpan; import ru.noties.markwon.spans.ThematicBreakSpan; +/** + * @since 1.1.0 + */ public class SpannableFactoryDef implements SpannableFactory { @NonNull diff --git a/library/src/main/java/ru/noties/markwon/renderer/html/SpannableHtmlParser.java b/library/src/main/java/ru/noties/markwon/renderer/html/SpannableHtmlParser.java index 2604337e..118e0a1c 100644 --- a/library/src/main/java/ru/noties/markwon/renderer/html/SpannableHtmlParser.java +++ b/library/src/main/java/ru/noties/markwon/renderer/html/SpannableHtmlParser.java @@ -23,55 +23,6 @@ import ru.noties.markwon.spans.SpannableTheme; @SuppressWarnings("WeakerAccess") public class SpannableHtmlParser { -// // creates default parser -// @NonNull -// public static SpannableHtmlParser create( -// @NonNull SpannableTheme theme, -// @NonNull AsyncDrawable.Loader loader -// ) { -// return builderWithDefaults(theme, loader, null, null, null) -// .build(); -// } -// -// /** -// * @since 1.0.1 -// */ -// @NonNull -// public static SpannableHtmlParser create( -// @NonNull SpannableTheme theme, -// @NonNull AsyncDrawable.Loader loader, -// @NonNull ImageSizeResolver imageSizeResolver -// ) { -// return builderWithDefaults(theme, loader, null, null, imageSizeResolver) -// .build(); -// } -// -// @NonNull -// public static SpannableHtmlParser create( -// @NonNull SpannableTheme theme, -// @NonNull AsyncDrawable.Loader loader, -// @NonNull UrlProcessor urlProcessor, -// @NonNull LinkSpan.Resolver resolver -// ) { -// return builderWithDefaults(theme, loader, urlProcessor, resolver, null) -// .build(); -// } - -// /** -// * @since 1.0.1 -// */ -// @NonNull -// public static SpannableHtmlParser create( -// @NonNull SpannableTheme theme, -// @NonNull AsyncDrawable.Loader loader, -// @NonNull UrlProcessor urlProcessor, -// @NonNull LinkSpan.Resolver resolver, -// @NonNull ImageSizeResolver imageSizeResolver -// ) { -// return builderWithDefaults(theme, loader, urlProcessor, resolver, imageSizeResolver) -// .build(); -// } - /** * @since 1.1.0 */