|
|
@ -1846,8 +1846,8 @@ public class HtmlHelper {
|
|
|
|
|
|
|
|
|
|
|
|
if (debug) {
|
|
|
|
if (debug) {
|
|
|
|
if (block.size() > 0) {
|
|
|
|
if (block.size() > 0) {
|
|
|
|
block.get(0).text("<" + block.get(0));
|
|
|
|
block.get(0).text("(" + block.get(0));
|
|
|
|
block.get(block.size() - 1).text(block.get(block.size() - 1) + ">");
|
|
|
|
block.get(block.size() - 1).text(block.get(block.size() - 1) + ")");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1895,7 +1895,7 @@ public class HtmlHelper {
|
|
|
|
ssb.setSpan(new QuoteSpan(), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new QuoteSpan(), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "br":
|
|
|
|
case "br":
|
|
|
|
ssb.append("\n");
|
|
|
|
newline(ssb.length());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "em":
|
|
|
|
case "em":
|
|
|
|
ssb.setSpan(new StyleSpan(Typeface.ITALIC), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new StyleSpan(Typeface.ITALIC), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
@ -1909,8 +1909,8 @@ public class HtmlHelper {
|
|
|
|
int level = element.tagName().charAt(1) - '1';
|
|
|
|
int level = element.tagName().charAt(1) - '1';
|
|
|
|
ssb.setSpan(new RelativeSizeSpan(HEADING_SIZES[level]), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new RelativeSizeSpan(HEADING_SIZES[level]), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new StyleSpan(Typeface.BOLD), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new StyleSpan(Typeface.BOLD), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.insert(start, "\n");
|
|
|
|
newline(start);
|
|
|
|
ssb.append("\n");
|
|
|
|
newline(ssb.length());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "img":
|
|
|
|
case "img":
|
|
|
|
String src = element.attr("src");
|
|
|
|
String src = element.attr("src");
|
|
|
@ -1921,7 +1921,7 @@ public class HtmlHelper {
|
|
|
|
ssb.setSpan(new ImageSpan(d, src), start, start + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
ssb.setSpan(new ImageSpan(d, src), start, start + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "li":
|
|
|
|
case "li":
|
|
|
|
ssb.append("\n");
|
|
|
|
newline(ssb.length());
|
|
|
|
Element parent = element.parent();
|
|
|
|
Element parent = element.parent();
|
|
|
|
if (parent == null || "ul".equals(parent.tagName()))
|
|
|
|
if (parent == null || "ul".equals(parent.tagName()))
|
|
|
|
// TODO BulletSpanCompat
|
|
|
|
// TODO BulletSpanCompat
|
|
|
@ -1943,8 +1943,8 @@ public class HtmlHelper {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "ol":
|
|
|
|
case "ol":
|
|
|
|
case "ul":
|
|
|
|
case "ul":
|
|
|
|
ssb.insert(start, "\n");
|
|
|
|
newline(start);
|
|
|
|
ssb.append("\n");
|
|
|
|
newline(ssb.length());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "pre":
|
|
|
|
case "pre":
|
|
|
|
// Do nothing
|
|
|
|
// Do nothing
|
|
|
@ -1986,8 +1986,23 @@ public class HtmlHelper {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void newline(int index) {
|
|
|
|
|
|
|
|
int len = ssb.length();
|
|
|
|
|
|
|
|
if (len > 2 &&
|
|
|
|
|
|
|
|
ssb.charAt(len - 1) == '\n' &&
|
|
|
|
|
|
|
|
ssb.charAt(len - 2) == '\n')
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
ssb.insert(index, "\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}, document.body());
|
|
|
|
}, document.body());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (debug)
|
|
|
|
|
|
|
|
for (int i = ssb.length() - 1; i >= 0; i--)
|
|
|
|
|
|
|
|
if (ssb.charAt(i) == '\n')
|
|
|
|
|
|
|
|
ssb.insert(i, "|");
|
|
|
|
|
|
|
|
|
|
|
|
return reverseSpans(ssb);
|
|
|
|
return reverseSpans(ssb);
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|
return fromHtml(document.html(), imageGetter, null);
|
|
|
|
return fromHtml(document.html(), imageGetter, null);
|
|
|
|