From 672ae215d9b41015e4814647ea9e5ba5a304ff19 Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Tue, 24 Oct 2017 18:00:40 +0300 Subject: [PATCH] Fixed the indexes bug for margin spans --- .../markwon/renderer/SpannableMarkdownVisitor.java | 8 +++----- .../java/ru/noties/markwon/spans/BulletListItemSpan.java | 7 ++----- .../main/java/ru/noties/markwon/spans/HeadingSpan.java | 9 ++++----- .../ru/noties/markwon/spans/OrderedListItemSpan.java | 7 ++----- .../main/java/ru/noties/markwon/spans/TaskListSpan.java | 2 +- 5 files changed, 12 insertions(+), 21 deletions(-) diff --git a/library/src/main/java/ru/noties/markwon/renderer/SpannableMarkdownVisitor.java b/library/src/main/java/ru/noties/markwon/renderer/SpannableMarkdownVisitor.java index 8d5d5820..f0bbf912 100644 --- a/library/src/main/java/ru/noties/markwon/renderer/SpannableMarkdownVisitor.java +++ b/library/src/main/java/ru/noties/markwon/renderer/SpannableMarkdownVisitor.java @@ -204,8 +204,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor { setSpan(length, new OrderedListItemSpan( configuration.theme(), String.valueOf(start) + "." + '\u00a0', - blockQuoteIndent, - length + blockQuoteIndent )); // after we have visited the children increment start number @@ -219,8 +218,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor { setSpan(length, new BulletListItemSpan( configuration.theme(), blockQuoteIndent, - listLevel - 1, - length + listLevel - 1 )); } @@ -253,7 +251,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor { setSpan(length, new HeadingSpan( configuration.theme(), heading.getLevel(), - builder.length()) + builder.length() - length) ); newLine(); diff --git a/library/src/main/java/ru/noties/markwon/spans/BulletListItemSpan.java b/library/src/main/java/ru/noties/markwon/spans/BulletListItemSpan.java index d8058f25..c387a504 100644 --- a/library/src/main/java/ru/noties/markwon/spans/BulletListItemSpan.java +++ b/library/src/main/java/ru/noties/markwon/spans/BulletListItemSpan.java @@ -19,17 +19,14 @@ public class BulletListItemSpan implements LeadingMarginSpan { private final int blockIndent; private final int level; - private final int start; public BulletListItemSpan( @NonNull SpannableTheme theme, @IntRange(from = 0) int blockIndent, - @IntRange(from = 0) int level, - @IntRange(from = 0) int start) { + @IntRange(from = 0) int level) { this.theme = theme; this.blockIndent = blockIndent; this.level = level; - this.start = start; } @Override @@ -41,7 +38,7 @@ public class BulletListItemSpan implements LeadingMarginSpan { public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) { // if there was a line break, we don't need to draw anything - if (this.start != start) { + if (!first) { return; } diff --git a/library/src/main/java/ru/noties/markwon/spans/HeadingSpan.java b/library/src/main/java/ru/noties/markwon/spans/HeadingSpan.java index 7ec9c10a..fc6227eb 100644 --- a/library/src/main/java/ru/noties/markwon/spans/HeadingSpan.java +++ b/library/src/main/java/ru/noties/markwon/spans/HeadingSpan.java @@ -16,12 +16,12 @@ public class HeadingSpan extends MetricAffectingSpan implements LeadingMarginSpa private final Rect rect = ObjectsPool.rect(); private final Paint paint = ObjectsPool.paint(); private final int level; - private final int end; + private final int textLength; - public HeadingSpan(@NonNull SpannableTheme theme, @IntRange(from = 1, to = 6) int level, @IntRange(from = 0) int end) { + public HeadingSpan(@NonNull SpannableTheme theme, @IntRange(from = 1, to = 6) int level, @IntRange(from = 0) int textLength) { this.theme = theme; this.level = level; - this.end = end; + this.textLength = textLength; } @Override @@ -50,8 +50,7 @@ public class HeadingSpan extends MetricAffectingSpan implements LeadingMarginSpa if (level == 1 || level == 2) { - if (this.end == end) { - + if ((start + textLength) == end) { paint.set(p); theme.applyHeadingBreakStyle(paint); diff --git a/library/src/main/java/ru/noties/markwon/spans/OrderedListItemSpan.java b/library/src/main/java/ru/noties/markwon/spans/OrderedListItemSpan.java index 0cbd1fac..e46f7344 100644 --- a/library/src/main/java/ru/noties/markwon/spans/OrderedListItemSpan.java +++ b/library/src/main/java/ru/noties/markwon/spans/OrderedListItemSpan.java @@ -12,18 +12,15 @@ public class OrderedListItemSpan implements LeadingMarginSpan { private final SpannableTheme theme; private final String number; private final int blockIndent; - private final int start; public OrderedListItemSpan( @NonNull SpannableTheme theme, @NonNull String number, - @IntRange(from = 0) int blockIndent, - @IntRange(from = 0) int start + @IntRange(from = 0) int blockIndent ) { this.theme = theme; this.number = number; this.blockIndent = blockIndent; - this.start = start; } @Override @@ -35,7 +32,7 @@ public class OrderedListItemSpan implements LeadingMarginSpan { public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) { // if there was a line break, we don't need to draw anything - if (this.start != start) { + if (!first) { return; } diff --git a/library/src/main/java/ru/noties/markwon/spans/TaskListSpan.java b/library/src/main/java/ru/noties/markwon/spans/TaskListSpan.java index 901c68cc..1129c781 100644 --- a/library/src/main/java/ru/noties/markwon/spans/TaskListSpan.java +++ b/library/src/main/java/ru/noties/markwon/spans/TaskListSpan.java @@ -32,7 +32,7 @@ public class TaskListSpan implements LeadingMarginSpan { @Override public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) { - if (this.start != start) { + if (!first) { return; }