add margins to conversation view
Also fix some left/right balance problems on wide messages.
Bug: 6336075
Bug: 6375007
Change-Id: I8fd4a3099d0670f68295bf8f28d2ba55e7177bdc
diff --git a/assets/script.js b/assets/script.js
index ee15d03..45b72a0 100644
--- a/assets/script.js
+++ b/assets/script.js
@@ -67,8 +67,8 @@
var i;
var elements = document.getElementsByClassName("mail-message-content");
var messageElement;
- var documentWidth = document.documentElement.offsetWidth;
- var scale;
+ var documentWidth = document.body.offsetWidth;
+
for (i = 0; i < elements.length; i++) {
messageElement = elements[i];
messageElement.style.zoom = documentWidth / messageElement.scrollWidth;
diff --git a/res/layout/conversation_view.xml b/res/layout/conversation_view.xml
index 438e2b8..295833d 100644
--- a/res/layout/conversation_view.xml
+++ b/res/layout/conversation_view.xml
@@ -34,7 +34,9 @@
<FrameLayout
android:id="@+id/conversation_topmost_overlay"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/conversation_view_margin_side"
+ android:layout_marginRight="@dimen/conversation_view_margin_side">
<include layout="@layout/conversation_message_header"
android:id="@+id/snap_header"
diff --git a/res/layout/new_message_notification_bar.xml b/res/layout/new_message_notification_bar.xml
index b14f607..82dc342 100644
--- a/res/layout/new_message_notification_bar.xml
+++ b/res/layout/new_message_notification_bar.xml
@@ -18,8 +18,6 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginBottom="12dp"
- android:layout_marginLeft="@dimen/new_message_notification_margin_side"
- android:layout_marginRight="@dimen/new_message_notification_margin_side"
android:animateLayoutChanges="true"
android:background="@android:color/white">
diff --git a/res/raw/template_conversation_upper.html b/res/raw/template_conversation_upper.html
index 32b884d..ed45f30 100644
--- a/res/raw/template_conversation_upper.html
+++ b/res/raw/template_conversation_upper.html
@@ -22,5 +22,5 @@
}
</style>
</head>
-<body style="margin: 0;">
+<body style="margin: 0 %spx;">
<div id="conversation-header" style="height: %spx;"></div>
diff --git a/res/raw/template_message.html b/res/raw/template_message.html
index 97784ee..f000215 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 %s" style="display: %s; zoom: %s; padding: 16px;">%s</div>
+ <div class="mail-message-content collapsible zoom-normal %s" style="display: %s; padding: 16px 0;">%s</div>
<div class="mail-message-footer collapsible" style="display: %s; height: %spx;"></div>
</div>
diff --git a/res/values-sw600dp/dimen.xml b/res/values-sw600dp/dimen.xml
index d980bd3..e4edad5 100644
--- a/res/values-sw600dp/dimen.xml
+++ b/res/values-sw600dp/dimen.xml
@@ -25,6 +25,7 @@
<dimen name="wide_subject_margin_right">28dip</dimen>
<dimen name="subject_width">238dip</dimen>
<dimen name="spinner_frame_width">180dp</dimen>
+ <dimen name="conversation_view_margin_side">32dp</dimen>
<dimen name="conversation_header_side_padding">0dip</dimen>
<dimen name="conversation_header_vertical_padding">12dip</dimen>
<dimen name="conversation_page_side_margin">16dip</dimen>
@@ -41,7 +42,6 @@
<dimen name="message_header_action_button_width">56dip</dimen>
<dimen name="message_header_title_container_margin_right">0dip</dimen>
<dimen name="super_collapsed_height">32sp</dimen>
- <dimen name="new_message_notification_margin_side">32dp</dimen>
<dimen name="compose_scrollview_width">800dip</dimen>
<dimen name="compose_area_left_padding">100dip</dimen>
<dimen name="compose_area_right_padding">100dip</dimen>
diff --git a/res/values/dimen.xml b/res/values/dimen.xml
index cb64129..ec2d352 100644
--- a/res/values/dimen.xml
+++ b/res/values/dimen.xml
@@ -44,6 +44,8 @@
<dimen name="standard_scaled_dimen">100sp</dimen>
<dimen name="folder_cell_width">8dip</dimen>
<dimen name="triangle_width">15dip</dimen>
+ <dimen name="conversation_message_content_margin_side">16dp</dimen>
+ <dimen name="conversation_view_margin_side">0dp</dimen>
<dimen name="conversation_header_vertical_item_padding">8dip</dimen>
<dimen name="conversation_header_vertical_padding">0dip</dimen>
<dimen name="conversation_header_side_padding">8dip</dimen>
@@ -67,7 +69,6 @@
<dimen name="contact_photo_width">48sp</dimen>
<dimen name="contact_photo_height">48sp</dimen>
<dimen name="message_header_inner_side_padding">8dip</dimen>
- <dimen name="new_message_notification_margin_side">0dp</dimen>
<dimen name="attachment_toast_yoffset">-100dip</dimen>
<dimen name="spinner_frame_width">168dip</dimen>
<dimen name="folder_list_heading_padding_side">8dp</dimen>
diff --git a/src/com/android/mail/browse/ConversationContainer.java b/src/com/android/mail/browse/ConversationContainer.java
index bbee924..47ae675 100644
--- a/src/com/android/mail/browse/ConversationContainer.java
+++ b/src/com/android/mail/browse/ConversationContainer.java
@@ -26,6 +26,7 @@
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
+import android.view.ViewGroup.MarginLayoutParams;
import android.webkit.WebView;
import android.widget.Adapter;
import android.widget.ListView;
@@ -168,6 +169,8 @@
private final InputSmoother mVelocityTracker;
+ final private int mSideMargin;
+
private final DataSetObserver mAdapterObserver = new AdapterObserver();
/**
@@ -219,6 +222,8 @@
// Intercepting ACTION_POINTER_DOWN events allows pinch-zoom to work when the first pointer
// goes down on an overlay view.
setMotionEventSplittingEnabled(false);
+
+ mSideMargin = getResources().getDimensionPixelOffset(R.dimen.conversation_view_margin_side);
}
@Override
@@ -671,9 +676,16 @@
final int itemType = mOverlayAdapter.getItemViewType(adapterIndex);
final View convertView = mScrapViews.poll(itemType);
- View view = mOverlayAdapter.getView(adapterIndex, convertView, this);
+ final View view = mOverlayAdapter.getView(adapterIndex, convertView, this);
mOverlayViews.put(adapterIndex, new OverlayView(view, itemType));
+
+ // apply a default margin to all overlay items
+ MarginLayoutParams lp = (MarginLayoutParams) view.getLayoutParams();
+ if (lp.leftMargin != mSideMargin || lp.rightMargin != mSideMargin) {
+ lp.leftMargin = lp.rightMargin = mSideMargin;
+ }
+
final int index = BOTTOM_LAYER_VIEW_IDS.length;
// Only re-attach if the view had previously been added to a view hierarchy.
diff --git a/src/com/android/mail/ui/ConversationViewFragment.java b/src/com/android/mail/ui/ConversationViewFragment.java
index 3b79ea8..b45d5e5 100644
--- a/src/com/android/mail/ui/ConversationViewFragment.java
+++ b/src/com/android/mail/ui/ConversationViewFragment.java
@@ -601,7 +601,12 @@
final int convHeaderPos = mAdapter.addConversationHeader(mConversation);
final int convHeaderPx = measureOverlayHeight(convHeaderPos);
- mTemplates.startConversation(mWebView.screenPxToWebPx(convHeaderPx));
+ final int sideMarginPx = getResources().getDimensionPixelOffset(
+ R.dimen.conversation_view_margin_side) + getResources().getDimensionPixelOffset(
+ R.dimen.conversation_message_content_margin_side);
+
+ mTemplates.startConversation(mWebView.screenPxToWebPx(sideMarginPx),
+ mWebView.screenPxToWebPx(convHeaderPx));
int collapsedStart = -1;
ConversationMessage prevCollapsedMsg = null;
@@ -691,7 +696,7 @@
final int headerPx = measureOverlayHeight(headerPos);
final int footerPx = measureOverlayHeight(footerPos);
- mTemplates.appendMessageHtml(msg, expanded, safeForImages, 1.0f,
+ mTemplates.appendMessageHtml(msg, expanded, safeForImages,
mWebView.screenPxToWebPx(headerPx), mWebView.screenPxToWebPx(footerPx));
}
@@ -711,7 +716,7 @@
final int headerPx = measureOverlayHeight(header);
final int footerPx = measureOverlayHeight(footer);
- mTemplates.appendMessageHtml(msg, false /* expanded */, msg.alwaysShowImages, 1.0f,
+ mTemplates.appendMessageHtml(msg, false /* expanded */, msg.alwaysShowImages,
mWebView.screenPxToWebPx(headerPx), mWebView.screenPxToWebPx(footerPx));
replacements.add(header);
replacements.add(footer);
diff --git a/src/com/android/mail/ui/HtmlConversationTemplates.java b/src/com/android/mail/ui/HtmlConversationTemplates.java
index 1119ebb..db18980 100644
--- a/src/com/android/mail/ui/HtmlConversationTemplates.java
+++ b/src/com/android/mail/ui/HtmlConversationTemplates.java
@@ -128,7 +128,7 @@
}
public void appendMessageHtml(Message message, boolean isExpanded,
- boolean safeForImages, float zoomValue, int headerHeight, int footerHeight) {
+ boolean safeForImages, int headerHeight, int footerHeight) {
final String bodyDisplay = isExpanded ? "block" : "none";
final String expandedClass = isExpanded ? "expanded" : "";
@@ -165,7 +165,6 @@
headerHeight,
showImagesClass,
bodyDisplay,
- zoomValue,
body,
bodyDisplay,
footerHeight
@@ -176,13 +175,13 @@
return MESSAGE_PREFIX + msg.id;
}
- public void startConversation(int conversationHeaderHeight) {
+ public void startConversation(int sideMargin, int conversationHeaderHeight) {
if (mInProgress) {
throw new IllegalStateException("must call startConversation first");
}
reset();
- append(sConversationUpper, conversationHeaderHeight);
+ append(sConversationUpper, sideMargin, conversationHeaderHeight);
mInProgress = true;
}