mirror of https://github.com/M66B/FairEmail.git
Skip drawing invisible bullets
This commit is contained in:
parent
eb110a581c
commit
1c0535ec32
|
@ -32,18 +32,30 @@ import androidx.annotation.RequiresApi;
|
|||
public class BulletSpanEx extends BulletSpan {
|
||||
private int indentWidth;
|
||||
private int level;
|
||||
private String ltype;
|
||||
|
||||
public BulletSpanEx(int indentWidth, int gapWidth, int color, int level) {
|
||||
super(gapWidth, color);
|
||||
this.indentWidth = indentWidth;
|
||||
this.level = level;
|
||||
this(indentWidth, gapWidth, color, level, null);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
public BulletSpanEx(int indentWidth, int gapWidth, int color, int bulletRadius, int level) {
|
||||
this(indentWidth, gapWidth, color, bulletRadius, level, null);
|
||||
}
|
||||
|
||||
public BulletSpanEx(int indentWidth, int gapWidth, int color, int level, String ltype) {
|
||||
super(gapWidth, color);
|
||||
this.indentWidth = indentWidth;
|
||||
this.level = level;
|
||||
this.ltype = ltype;
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
public BulletSpanEx(int indentWidth, int gapWidth, int color, int bulletRadius, int level, String ltype) {
|
||||
super(gapWidth, color, bulletRadius);
|
||||
this.indentWidth = indentWidth;
|
||||
this.level = level;
|
||||
this.ltype = ltype;
|
||||
}
|
||||
|
||||
int getLevel() {
|
||||
|
@ -63,6 +75,8 @@ public class BulletSpanEx extends BulletSpan {
|
|||
|
||||
@Override
|
||||
public void drawLeadingMargin(@NonNull Canvas canvas, @NonNull Paint paint, int x, int dir, int top, int baseline, int bottom, @NonNull CharSequence text, int start, int end, boolean first, @Nullable Layout layout) {
|
||||
if ("none".equals(ltype))
|
||||
return;
|
||||
super.drawLeadingMargin(canvas, paint, x + indentWidth * (level + 1) * dir, dir, top, baseline, bottom, text, start, end, first, layout);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -824,6 +824,10 @@ public class HtmlHelper {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "list-style-type":
|
||||
element.attr("x-list-style", value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2741,10 +2745,11 @@ public class HtmlHelper {
|
|||
level--;
|
||||
|
||||
if (type == null || "ul".equals(type.tagName())) {
|
||||
String ltype = element.attr("x-list-style");
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P)
|
||||
setSpan(ssb, new BulletSpanEx(bulletIndent, bulletGap, colorAccent, level), start, ssb.length());
|
||||
setSpan(ssb, new BulletSpanEx(bulletIndent, bulletGap, colorAccent, level, ltype), start, ssb.length());
|
||||
else
|
||||
setSpan(ssb, new BulletSpanEx(bulletIndent, bulletGap, colorAccent, bulletRadius, level), start, ssb.length());
|
||||
setSpan(ssb, new BulletSpanEx(bulletIndent, bulletGap, colorAccent, bulletRadius, level, ltype), start, ssb.length());
|
||||
} else {
|
||||
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol
|
||||
int index = 0;
|
||||
|
@ -2934,7 +2939,8 @@ public class HtmlHelper {
|
|||
.removeAttr("x-column")
|
||||
.removeAttr("x-dashed")
|
||||
.removeAttr("x-tracking")
|
||||
.removeAttr("x-border");
|
||||
.removeAttr("x-border")
|
||||
.removeAttr("x-list-style");
|
||||
}
|
||||
|
||||
static Spanned fromHtml(@NonNull String html, Context context) {
|
||||
|
|
Loading…
Reference in New Issue