diff options
author | Andy Huang <ath@google.com> | 2014-02-19 18:29:43 -0800 |
---|---|---|
committer | Andy Huang <ath@google.com> | 2014-02-19 18:29:43 -0800 |
commit | 986776bbd046c9569a4abb67501819bee61e7194 (patch) | |
tree | afd3f805873335724b4b367aa240b2349747b710 | |
parent | ea4578697b52e43fd7be86882c77c92057c2e250 (diff) | |
download | android_packages_apps_UnifiedEmail-986776bbd046c9569a4abb67501819bee61e7194.tar.gz android_packages_apps_UnifiedEmail-986776bbd046c9569a4abb67501819bee61e7194.tar.bz2 android_packages_apps_UnifiedEmail-986776bbd046c9569a4abb67501819bee61e7194.zip |
fix missing message text processing upon send (and as drafts mutate)
Fix message body processing when transitioning through the send flow.
Previously, the message text was largely unprocessed, but it wasn't
obvious like it is now with 980px viewports.
Also move 'table-cell' wrapping from inside the message template to Java
code so the in-place body replacement that happens during send can also
use it.
Bug: 13079016
Change-Id: I9a6a801c43b76c1714dfd2c8b41649fa6b9e90c8
-rw-r--r-- | assets/script.js | 14 | ||||
-rw-r--r-- | res/raw/template_message.html | 2 | ||||
-rw-r--r-- | src/com/android/mail/ui/ConversationViewFragment.java | 2 | ||||
-rw-r--r-- | src/com/android/mail/ui/HtmlConversationTemplates.java | 14 |
4 files changed, 25 insertions, 7 deletions
diff --git a/assets/script.js b/assets/script.js index 17086823b..bbfa5e5c8 100644 --- a/assets/script.js +++ b/assets/script.js @@ -734,6 +734,14 @@ function replaceSuperCollapsedBlock(startIndex) { measurePositions(); } +function processNewMessageBody(msgContentDiv) { + processQuotedText(msgContentDiv, true /* showElided */); + hideUnsafeImages([msgContentDiv]); + if (up(msgContentDiv, "mail-message").classList.contains("expanded")) { + normalizeElementWidths([msgContentDiv]); + } +} + function replaceMessageBodies(messageIds) { var i; var id; @@ -743,8 +751,7 @@ function replaceMessageBodies(messageIds) { id = messageIds[i]; msgContentDiv = document.querySelector("#" + id + " > .mail-message-content"); msgContentDiv.innerHTML = window.mail.getMessageBody(id); - processQuotedText(msgContentDiv, true /* showElided */); - hideUnsafeImages([msgContentDiv]); + processNewMessageBody(msgContentDiv); } measurePositions(); } @@ -757,8 +764,7 @@ function appendMessageHtml() { var border = msg.children[1]; // get the border spacer as well document.body.appendChild(body); document.body.appendChild(border); - processQuotedText(msg, true /* showElided */); - hideUnsafeImages(msg.getElementsByClassName("mail-message-content")); + processNewMessageBody(body.querySelector(".mail-message-content")); measurePositions(); } diff --git a/res/raw/template_message.html b/res/raw/template_message.html index a13b05971..8195f7d01 100644 --- a/res/raw/template_message.html +++ b/res/raw/template_message.html @@ -1,5 +1,5 @@ <div id="%s" class="mail-message %s"> <div class="mail-message-header spacer" style="height: %spx;"></div> - <div class="mail-message-content collapsible zoom-normal %s" style="display: %s; margin: 16px 0;"><div style="display: table-cell;">%s</div></div> + <div class="mail-message-content collapsible zoom-normal %s" style="display: %s; margin: 16px 0;">%s</div> <div class="mail-message-footer spacer collapsible" style="display: %s; height: %spx;"></div> </div> diff --git a/src/com/android/mail/ui/ConversationViewFragment.java b/src/com/android/mail/ui/ConversationViewFragment.java index 6a58151d4..45fec600b 100644 --- a/src/com/android/mail/ui/ConversationViewFragment.java +++ b/src/com/android/mail/ui/ConversationViewFragment.java @@ -1224,7 +1224,7 @@ public class ConversationViewFragment extends AbstractConversationViewFragment i while (cursor.moveToPosition(++pos)) { final ConversationMessage msg = cursor.getMessage(); if (TextUtils.equals(domId, mTemplates.getMessageDomId(msg))) { - return msg.getBodyAsHtml(); + return HtmlConversationTemplates.wrapMessageBody(msg.getBodyAsHtml()); } } diff --git a/src/com/android/mail/ui/HtmlConversationTemplates.java b/src/com/android/mail/ui/HtmlConversationTemplates.java index 60df9ddb9..cbfbd841c 100644 --- a/src/com/android/mail/ui/HtmlConversationTemplates.java +++ b/src/com/android/mail/ui/HtmlConversationTemplates.java @@ -115,6 +115,18 @@ public class HtmlConversationTemplates extends AbstractHtmlTemplates { return sAbsoluteImgUrlPattern.matcher(html).replaceAll(IMG_URL_REPLACEMENT); } + /** + * Wrap a given message body string to prevent its contents from flowing out of the current DOM + * block context. + * + */ + public static String wrapMessageBody(String msgBody) { + final StringBuilder sb = new StringBuilder("<div style=\"display: table-cell;\">"); + sb.append(msgBody); + sb.append("</div>"); + return sb.toString(); + } + public void appendMessageHtml(HtmlMessage message, boolean isExpanded, boolean safeForImages, int headerHeight, int footerHeight) { @@ -148,7 +160,7 @@ public class HtmlConversationTemplates extends AbstractHtmlTemplates { headerHeight, showImagesClass, bodyDisplay, - body, + wrapMessageBody(body), bodyDisplay, footerHeight ); |