From 1de051615be0de19cefd0b547cd0839fdc506b5c Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 7 Jul 2021 20:07:11 +0200 Subject: [PATCH] Quote in right direction --- .../main/java/eu/faircode/email/EntityRule.java | 2 +- .../java/eu/faircode/email/FragmentCompose.java | 2 +- app/src/main/java/eu/faircode/email/HtmlEx.java | 3 ++- .../main/java/eu/faircode/email/HtmlHelper.java | 17 ++++++++++++++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 262b4c8946..8f49da5260 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -649,7 +649,7 @@ public class EntityRule { Element e = answering.body(); if (quote) { String style = e.attr("style"); - style = HtmlHelper.mergeStyles(style, HtmlHelper.QUOTE_STYLE); + style = HtmlHelper.mergeStyles(style, HtmlHelper.getQuoteStyle(e)); e.tagName("blockquote").attr("style", style); } else e.tagName("p"); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index ed5f9a66ee..9816c526d0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -4362,7 +4362,7 @@ public class FragmentCompose extends FragmentBase { if (quote) { String style = e.attr("style"); - style = HtmlHelper.mergeStyles(style, HtmlHelper.QUOTE_STYLE); + style = HtmlHelper.mergeStyles(style, HtmlHelper.getQuoteStyle(e)); e.tagName("blockquote").attr("style", style); } else e.tagName("p"); diff --git a/app/src/main/java/eu/faircode/email/HtmlEx.java b/app/src/main/java/eu/faircode/email/HtmlEx.java index 37d26b332b..6b9119ddd2 100644 --- a/app/src/main/java/eu/faircode/email/HtmlEx.java +++ b/app/src/main/java/eu/faircode/email/HtmlEx.java @@ -144,7 +144,8 @@ public class HtmlEx { for (Object quote : quotes) { if (quote instanceof QuoteSpan) - out.append("
"); + out.append("
"); else out.append("
"); } diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 239c2cb77a..f8f7ae939c 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -126,7 +126,6 @@ public class HtmlHelper { static final float FONT_SMALL = 0.8f; static final float FONT_LARGE = 1.25f; - static final String QUOTE_STYLE = "border-left:3px solid #ccc; padding-left:3px;"; private static final int DEFAULT_FONT_SIZE = 16; // pixels private static final int DEFAULT_FONT_SIZE_PT = 12; // points @@ -2013,6 +2012,22 @@ public class HtmlHelper { return d.text(); } + static String getQuoteStyle(Element e) { + CharSequence text = e.text(); + return getQuoteStyle(text, 0, text.length()); + } + + static String getQuoteStyle(CharSequence quoted, int start, int end) { + try { + if (TextDirectionHeuristics.FIRSTSTRONG_LTR.isRtl(quoted, start, end)) + return "border-right:3px solid #ccc; padding-left:3px;"; + } catch (Throwable ex) { + Log.e(ex); + } + + return "border-left:3px solid #ccc; padding-left:3px;"; + } + static boolean hasBorder(Element e) { return "true".equals(e.attr("x-border")); }