From f8fcb9c08b3eecee7304aa8c909076e179e66ca6 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 24 Sep 2019 17:18:33 +0200 Subject: [PATCH] Block quote white space improvement --- .../java/eu/faircode/email/MessageHelper.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 3e380af448..f8662fbf7a 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -907,34 +907,45 @@ public class MessageHelper { int level = 0; String[] lines = result.split("\\r?\\n"); for (String line : lines) { + // Opening quotes int tlevel = 0; - while (line.trim().startsWith(">")) { + while (line.startsWith(">")) { tlevel++; if (tlevel > level) sb.append("
"); - while (line.startsWith(" ")) + + line = line.substring(1); // > + + if (line.startsWith(" ")) line = line.substring(1); - line = line.substring(1); } + + // Closing quotes for (int i = 0; i < level - tlevel; i++) sb.append("
"); level = tlevel; + // Show as-is line = Html.escapeHtml(line); + // Non breaking spaces + boolean start = true; 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) == ' ') + (start || j + 1 < len && line.charAt(j + 1) == ' ')) sb.append(" "); - else + else { + start = false; sb.append(kar); + } } sb.append("
"); } + // Closing quotes for (int i = 0; i < level; i++) sb.append("");