Process plain text quotes

pull/162/head
M66B 6 years ago
parent 214774fa09
commit e0a547d0ef

@ -191,17 +191,14 @@ public class HtmlHelper {
line = Html.escapeHtml(line); line = Html.escapeHtml(line);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if ("-- ".equals(line)) int len = line.length();
sb.append(line); for (int j = 0; j < len; j++) {
else { char kar = line.charAt(j);
int len = line.length(); if (kar == ' ' &&
for (int j = 0; j < len; j++) { j + 1 < len && line.charAt(j + 1) == ' ')
char kar = line.charAt(j); sb.append("&nbsp;");
if (kar == ' ' && j + 1 < len && line.charAt(j + 1) == ' ') else
sb.append("&nbsp;"); sb.append(kar);
else
sb.append(kar);
}
} }
Element span = document.createElement("span"); Element span = document.createElement("span");

@ -23,6 +23,7 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.MailTo; import android.net.MailTo;
import android.net.Uri; import android.net.Uri;
import android.text.Html;
import android.text.TextUtils; import android.text.TextUtils;
import android.webkit.MimeTypeMap; import android.webkit.MimeTypeMap;
@ -898,8 +899,46 @@ public class MessageHelper {
// Prevent Jsoup throwing an exception // Prevent Jsoup throwing an exception
result = result.replace("\0", ""); result = result.replace("\0", "");
if (part.isMimeType("text/plain")) if (part.isMimeType("text/plain")) {
result = "<pre>" + TextUtils.htmlEncode(result) + "</pre>"; StringBuilder sb = new StringBuilder();
sb.append("<span>");
int level = 0;
String[] lines = result.split("\\r?\\n");
for (String line : lines) {
int tlevel = 0;
while (line.startsWith("> ")) {
tlevel++;
if (tlevel > level)
sb.append("<blockquote>");
line = line.substring(2);
}
for (int i = 0; i < level - tlevel; i++)
sb.append("</blockquote>");
level = tlevel;
line = Html.escapeHtml(line);
int len = line.length();
for (int j = 0; j < len; j++) {
char kar = line.charAt(j);
if (kar == ' ' &&
j + 1 < len && line.charAt(j + 1) == ' ')
sb.append("&nbsp;");
else
sb.append(kar);
}
sb.append("<br>");
}
for (int i = 0; i < level; i++)
sb.append("</blockquote>");
sb.append("</span>");
result = sb.toString();
}
return result; return result;
} }

Loading…
Cancel
Save