Loading legacy/core/src/main/java/com/fsck/k9/message/html/HTMLTag.kt 0 → 100644 +9 −0 Original line number Diff line number Diff line package com.fsck.k9.message.html /** * Available HTML-Tags for creating HTML in E-Mails */ enum class HTMLTag(val html: String) { DIV("div"), SPAN("span"), } legacy/core/src/main/java/com/fsck/k9/message/html/HtmlConverter.kt +3 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,8 @@ object HtmlConverter { * Convert a plain text string into an HTML fragment. */ @JvmStatic fun textToHtmlFragment(text: String): String { return TextToHtml.toHtmlFragment(text, retainOriginalWhitespace = false) @JvmOverloads fun textToHtmlFragment(text: String, htmlTag: HTMLTag = HTMLTag.DIV): String { return TextToHtml.toHtmlFragment(text, retainOriginalWhitespace = false, htmlTag) } } legacy/core/src/main/java/com/fsck/k9/message/html/TextToHtml.kt +5 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ class TextToHtml private constructor( private val text: CharSequence, private val html: StringBuilder, private val retainOriginalWhitespace: Boolean, private val htmlTag: HTMLTag = HTMLTag.DIV, ) { fun appendAsHtmlFragment() { appendHtmlPrefix() Loading Loading @@ -59,11 +60,11 @@ class TextToHtml private constructor( } private fun appendHtmlPrefix() { html.append("""<div dir="auto">""") html.append("""<${htmlTag.html} dir="auto">""") } private fun appendHtmlSuffix() { html.append("</div>") html.append("</${htmlTag.html}>") } private fun appendHtmlEncoded(startIndex: Int, endIndex: Int) { Loading Loading @@ -151,9 +152,9 @@ class TextToHtml private constructor( } @JvmStatic fun toHtmlFragment(text: CharSequence, retainOriginalWhitespace: Boolean): String { fun toHtmlFragment(text: CharSequence, retainOriginalWhitespace: Boolean, htmlTag: HTMLTag): String { val html = StringBuilder(text.length + TEXT_TO_HTML_EXTRA_BUFFER_LENGTH) TextToHtml(text, html, retainOriginalWhitespace).appendAsHtmlFragment() TextToHtml(text, html, retainOriginalWhitespace, htmlTag).appendAsHtmlFragment() return html.toString() } } Loading legacy/core/src/main/java/com/fsck/k9/message/quote/HtmlQuoteCreator.java +8 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import java.util.regex.Pattern; import com.fsck.k9.CoreResourceProvider; import app.k9mail.legacy.di.DI; import com.fsck.k9.message.html.HTMLTag; import net.thunderbird.core.android.account.QuoteStyle; import net.thunderbird.core.logging.legacy.Log; import com.fsck.k9.mail.Address; Loading Loading @@ -68,12 +69,14 @@ public class HtmlQuoteCreator { insertable.insertIntoQuotedFooter(footer); } else if (quoteStyle == QuoteStyle.HEADER) { HTMLTag span = HTMLTag.SPAN; //Fixes #9236 StringBuilder header = new StringBuilder(); header.append("<div style='font-size:10.0pt;font-family:\"Tahoma\",\"sans-serif\";padding:3.0pt 0in 0in 0in'>\r\n"); header.append("<hr style='border:none;border-top:solid #E1E1E1 1.0pt'>\r\n"); // This gets converted into a horizontal line during html to text conversion. if (originalMessage.getFrom() != null && fromAddress.length() != 0) { header.append("<b>").append(resourceProvider.messageHeaderFrom()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(fromAddress)) .append(HtmlConverter.textToHtmlFragment(fromAddress, span)) .append("<br>\r\n"); } if (sentDate.length() != 0) { Loading @@ -83,17 +86,18 @@ public class HtmlQuoteCreator { } if (originalMessage.getRecipients(RecipientType.TO) != null && originalMessage.getRecipients(RecipientType.TO).length != 0) { header.append("<b>").append(resourceProvider.messageHeaderTo()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.TO)))) .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.TO)), span)) .append("<br>\r\n"); } if (originalMessage.getRecipients(RecipientType.CC) != null && originalMessage.getRecipients(RecipientType.CC).length != 0) { header.append("<b>").append(resourceProvider.messageHeaderCc()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.CC)))) .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.CC)), span)) .append("<br>\r\n"); } if (originalMessage.getSubject() != null) { header.append("<b>").append(resourceProvider.messageHeaderSubject()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(originalMessage.getSubject())) .append(HtmlConverter.textToHtmlFragment(originalMessage.getSubject(), span)) .append("<br>\r\n"); } header.append("</div>\r\n"); Loading Loading
legacy/core/src/main/java/com/fsck/k9/message/html/HTMLTag.kt 0 → 100644 +9 −0 Original line number Diff line number Diff line package com.fsck.k9.message.html /** * Available HTML-Tags for creating HTML in E-Mails */ enum class HTMLTag(val html: String) { DIV("div"), SPAN("span"), }
legacy/core/src/main/java/com/fsck/k9/message/html/HtmlConverter.kt +3 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,8 @@ object HtmlConverter { * Convert a plain text string into an HTML fragment. */ @JvmStatic fun textToHtmlFragment(text: String): String { return TextToHtml.toHtmlFragment(text, retainOriginalWhitespace = false) @JvmOverloads fun textToHtmlFragment(text: String, htmlTag: HTMLTag = HTMLTag.DIV): String { return TextToHtml.toHtmlFragment(text, retainOriginalWhitespace = false, htmlTag) } }
legacy/core/src/main/java/com/fsck/k9/message/html/TextToHtml.kt +5 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ class TextToHtml private constructor( private val text: CharSequence, private val html: StringBuilder, private val retainOriginalWhitespace: Boolean, private val htmlTag: HTMLTag = HTMLTag.DIV, ) { fun appendAsHtmlFragment() { appendHtmlPrefix() Loading Loading @@ -59,11 +60,11 @@ class TextToHtml private constructor( } private fun appendHtmlPrefix() { html.append("""<div dir="auto">""") html.append("""<${htmlTag.html} dir="auto">""") } private fun appendHtmlSuffix() { html.append("</div>") html.append("</${htmlTag.html}>") } private fun appendHtmlEncoded(startIndex: Int, endIndex: Int) { Loading Loading @@ -151,9 +152,9 @@ class TextToHtml private constructor( } @JvmStatic fun toHtmlFragment(text: CharSequence, retainOriginalWhitespace: Boolean): String { fun toHtmlFragment(text: CharSequence, retainOriginalWhitespace: Boolean, htmlTag: HTMLTag): String { val html = StringBuilder(text.length + TEXT_TO_HTML_EXTRA_BUFFER_LENGTH) TextToHtml(text, html, retainOriginalWhitespace).appendAsHtmlFragment() TextToHtml(text, html, retainOriginalWhitespace, htmlTag).appendAsHtmlFragment() return html.toString() } } Loading
legacy/core/src/main/java/com/fsck/k9/message/quote/HtmlQuoteCreator.java +8 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import java.util.regex.Pattern; import com.fsck.k9.CoreResourceProvider; import app.k9mail.legacy.di.DI; import com.fsck.k9.message.html.HTMLTag; import net.thunderbird.core.android.account.QuoteStyle; import net.thunderbird.core.logging.legacy.Log; import com.fsck.k9.mail.Address; Loading Loading @@ -68,12 +69,14 @@ public class HtmlQuoteCreator { insertable.insertIntoQuotedFooter(footer); } else if (quoteStyle == QuoteStyle.HEADER) { HTMLTag span = HTMLTag.SPAN; //Fixes #9236 StringBuilder header = new StringBuilder(); header.append("<div style='font-size:10.0pt;font-family:\"Tahoma\",\"sans-serif\";padding:3.0pt 0in 0in 0in'>\r\n"); header.append("<hr style='border:none;border-top:solid #E1E1E1 1.0pt'>\r\n"); // This gets converted into a horizontal line during html to text conversion. if (originalMessage.getFrom() != null && fromAddress.length() != 0) { header.append("<b>").append(resourceProvider.messageHeaderFrom()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(fromAddress)) .append(HtmlConverter.textToHtmlFragment(fromAddress, span)) .append("<br>\r\n"); } if (sentDate.length() != 0) { Loading @@ -83,17 +86,18 @@ public class HtmlQuoteCreator { } if (originalMessage.getRecipients(RecipientType.TO) != null && originalMessage.getRecipients(RecipientType.TO).length != 0) { header.append("<b>").append(resourceProvider.messageHeaderTo()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.TO)))) .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.TO)), span)) .append("<br>\r\n"); } if (originalMessage.getRecipients(RecipientType.CC) != null && originalMessage.getRecipients(RecipientType.CC).length != 0) { header.append("<b>").append(resourceProvider.messageHeaderCc()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.CC)))) .append(HtmlConverter.textToHtmlFragment(Address.toString(originalMessage.getRecipients(RecipientType.CC)), span)) .append("<br>\r\n"); } if (originalMessage.getSubject() != null) { header.append("<b>").append(resourceProvider.messageHeaderSubject()).append("</b> ") .append(HtmlConverter.textToHtmlFragment(originalMessage.getSubject())) .append(HtmlConverter.textToHtmlFragment(originalMessage.getSubject(), span)) .append("<br>\r\n"); } header.append("</div>\r\n"); Loading