summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Huang <ath@google.com>2014-02-21 02:25:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-21 02:25:21 +0000
commit51222b3d1e2c3d78595c34bcf3f52b0e6bef9563 (patch)
tree61495f47feb7d5bc340e721e51bf56dd8ef4de75
parent8fffbfd918188b474639d6671c604b1485bcf722 (diff)
parent986776bbd046c9569a4abb67501819bee61e7194 (diff)
downloadandroid_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.js14
-rw-r--r--res/raw/template_message.html2
-rw-r--r--src/com/android/mail/ui/ConversationViewFragment.java2
-rw-r--r--src/com/android/mail/ui/HtmlConversationTemplates.java14
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
);