Fixed the indexes bug for margin spans
This commit is contained in:
parent
d1d3f51704
commit
672ae215d9
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user