diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 73d9623e9a..f83dfc9d33 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -191,17 +191,14 @@ public class HtmlHelper { line = Html.escapeHtml(line); StringBuilder sb = new StringBuilder(); - if ("-- ".equals(line)) - sb.append(line); - else { - 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(" "); - else - sb.append(kar); - } + 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(" "); + else + sb.append(kar); } Element span = document.createElement("span"); diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 088ebb7206..1e9b4765e0 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -23,6 +23,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.net.MailTo; import android.net.Uri; +import android.text.Html; import android.text.TextUtils; import android.webkit.MimeTypeMap; @@ -898,8 +899,46 @@ public class MessageHelper { // Prevent Jsoup throwing an exception result = result.replace("\0", ""); - if (part.isMimeType("text/plain")) - result = "
" + TextUtils.htmlEncode(result) + ""; + if (part.isMimeType("text/plain")) { + StringBuilder sb = new StringBuilder(); + sb.append(""); + + 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("
"); + line = line.substring(2); + } + for (int i = 0; i < level - tlevel; i++) + sb.append(""); + 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(" "); + else + sb.append(kar); + } + + sb.append("