summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Huang <ath@google.com>2014-02-19 18:29:43 -0800
committerAndy Huang <ath@google.com>2014-02-19 18:29:43 -0800
commit986776bbd046c9569a4abb67501819bee61e7194 (patch)
treeafd3f805873335724b4b367aa240b2349747b710
parentea4578697b52e43fd7be86882c77c92057c2e250 (diff)
downloadandroid_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.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
);