From 550362e4c399834b352fff40788adb5a92e01fac Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 6 Nov 2020 13:57:11 +0100 Subject: [PATCH] Skip alignment in tables --- .../java/eu/faircode/email/HtmlHelper.java | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 9a8aa6f994..361ed3474c 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -2129,23 +2129,36 @@ public class HtmlHelper { setSpan(ssb, new StrikethroughSpan(), start, ssb.length()); break; case "text-align": - // https://developer.mozilla.org/en-US/docs/Web/CSS/text-align - Layout.Alignment alignment = null; - switch (value) { - case "left": - case "start": - alignment = (ltr ? Layout.Alignment.ALIGN_NORMAL : Layout.Alignment.ALIGN_OPPOSITE); - break; - case "center": - alignment = Layout.Alignment.ALIGN_CENTER; - break; - case "right": - case "end": - alignment = (ltr ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL); + boolean table = false; + Element e = element; + while (e != null) { + if ("table".equals(e.tagName()) || + "true".equals(e.attr("x-table"))) { + table = true; break; + } + e = e.parent(); + } + + // https://developer.mozilla.org/en-US/docs/Web/CSS/text-align + if (!table) { + Layout.Alignment alignment = null; + switch (value) { + case "left": + case "start": + alignment = (ltr ? Layout.Alignment.ALIGN_NORMAL : Layout.Alignment.ALIGN_OPPOSITE); + break; + case "center": + alignment = Layout.Alignment.ALIGN_CENTER; + break; + case "right": + case "end": + alignment = (ltr ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL); + break; + } + if (alignment != null) + setSpan(ssb, new AlignmentSpan.Standard(alignment), start, ssb.length()); } - if (alignment != null) - setSpan(ssb, new AlignmentSpan.Standard(alignment), start, ssb.length()); break; } }