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