Use Runnable instances instead of Lambda expressions for Java < 8 compatibility
This commit is contained in:
parent
a46df8fa66
commit
36977c9a86
@ -2,7 +2,6 @@ package it.niedermann.android.markdown.markwon.handler;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.text.Spanned;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
@ -14,14 +13,6 @@ import io.noties.markwon.editor.PersistedSpans;
|
||||
|
||||
public class HeadingEditHandler implements EditHandler<HeadingSpan> {
|
||||
|
||||
private static final String[] MARKERS = new String[]{
|
||||
"#",
|
||||
"##",
|
||||
"###",
|
||||
"####",
|
||||
"#####",
|
||||
"######",
|
||||
};
|
||||
|
||||
private MarkwonTheme theme;
|
||||
|
||||
@ -32,12 +23,12 @@ public class HeadingEditHandler implements EditHandler<HeadingSpan> {
|
||||
|
||||
@Override
|
||||
public void configurePersistedSpans(@NonNull PersistedSpans.Builder builder) {
|
||||
builder.persistSpan(Heading1Span.class, () -> new Heading1Span(theme));
|
||||
builder.persistSpan(Heading2Span.class, () -> new Heading2Span(theme));
|
||||
builder.persistSpan(Heading3Span.class, () -> new Heading3Span(theme));
|
||||
builder.persistSpan(Heading4Span.class, () -> new Heading4Span(theme));
|
||||
builder.persistSpan(Heading5Span.class, () -> new Heading5Span(theme));
|
||||
builder.persistSpan(Heading6Span.class, () -> new Heading6Span(theme));
|
||||
builder.persistSpan(Heading1Span.class, new Runnable() { new Heading1Span(theme)});
|
||||
builder.persistSpan(Heading2Span.class, new Runnable() { new Heading2Span(theme)});
|
||||
builder.persistSpan(Heading3Span.class, new Runnable() { new Heading3Span(theme)});
|
||||
builder.persistSpan(Heading4Span.class, new Runnable() { new Heading4Span(theme)});
|
||||
builder.persistSpan(Heading5Span.class, new Runnable() { new Heading5Span(theme)});
|
||||
builder.persistSpan(Heading6Span.class, new Runnable() { new Heading6Span(theme)});
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -73,9 +64,8 @@ public class HeadingEditHandler implements EditHandler<HeadingSpan> {
|
||||
return;
|
||||
|
||||
}
|
||||
int newStart = getNewSpanStart(input, spanStart, newSpan.getLevel());
|
||||
int newEnd = input.indexOf("\n", newStart);
|
||||
Log.w("deck", "found heading lv "+span.getLevel()+": \""+input.substring(newStart, newEnd)+"\"");
|
||||
int newStart = getNewSpanStart(input, spanStart);
|
||||
int newEnd = findEnd(input, newStart, newSpan.getLevel());
|
||||
|
||||
editable.setSpan(
|
||||
newSpan,
|
||||
@ -85,11 +75,19 @@ public class HeadingEditHandler implements EditHandler<HeadingSpan> {
|
||||
);
|
||||
}
|
||||
|
||||
private int getNewSpanStart(String input, int spanStart, int level) {
|
||||
String marker = MARKERS[level-1];
|
||||
if (input.substring(spanStart, spanStart + level).equals(marker)) {
|
||||
return spanStart;
|
||||
private int findEnd(String input, int searchFrom, int spanLevel) {
|
||||
int end = searchFrom + spanLevel;
|
||||
int strLength = input.length();
|
||||
while (end < strLength-1) {
|
||||
end++;
|
||||
if (input.charAt(end) == '\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return end+1;
|
||||
}
|
||||
|
||||
private int getNewSpanStart(String input, int spanStart) {
|
||||
|
||||
int start = spanStart;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user