diff options
author | Andy Huang <ath@google.com> | 2014-02-21 02:25:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-02-21 02:25:21 +0000 |
commit | 51222b3d1e2c3d78595c34bcf3f52b0e6bef9563 (patch) | |
tree | 61495f47feb7d5bc340e721e51bf56dd8ef4de75 | |
parent | 8fffbfd918188b474639d6671c604b1485bcf722 (diff) | |
parent | 986776bbd046c9569a4abb67501819bee61e7194 (diff) | |
download | android_packages_apps_UnifiedEmail-51222b3d1e2c3d78595c34bcf3f52b0e6bef9563.tar.gz android_packages_apps_UnifiedEmail-51222b3d1e2c3d78595c34bcf3f52b0e6bef9563.tar.bz2 android_packages_apps_UnifiedEmail-51222b3d1e2c3d78595c34bcf3f52b0e6bef9563.zip |
Merge "fix missing message text processing upon send (and as drafts mutate)" into ub-mail-master
-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 ); |