History log of /packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d56ecc5f959baa497a7620eaff295f1417db4fda 03-Sep-2014 Ray Chen <raychen@google.com> Disable POST forms in mail content.

b/17183273

Change-Id: Ieb9113fd37d5c75bc0829f79b286a36c53c66b81
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
e2a30e19a9fff0e4368c4ec36280a3fcd4ca03e2 03-Jul-2014 Andrew Sapperstein <asapperstein@google.com> conversation footer b/15595931

Change-Id: I9eda1060f4e49a0448a321f603aec0a254daf86a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
59ccec3db4710f2aea6a4a9a30160ad19331367d 19-Jun-2014 Andrew Sapperstein <asapperstein@google.com> Remove borders/cards from conversation view.

b/15595931

Change-Id: I51b5ce1d9387d6354d421b0e399a2003c6e84c54
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
575e82b628dca4a67dd25b883c504ce9109a345a 08-Apr-2014 Andrew Sapperstein <asapperstein@google.com> Properly restore scroll position on K+ b/13333564.

There's a bug in chromium webview that causes the scroll
position to be improperly reported the first time
onScrollChanged is called. This breaks rotation
on K+ so we delay it until the content is ready on K.

Change-Id: I57729ad5279a999ab523919c6059897813b1370e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
cd7e48431ef9800e46a4b3cb0a33768bd47a2452 01-Apr-2014 Andy Huang <ath@google.com> revert table-cell wrapping

It causes simple, non-bidi messages to be left-aligned. Reproducible in
desktop browsers, too, so this will require some investigation to do in
a bidi-friendly way.

Bug: 13678928
Change-Id: I54d6bf0488cf4316f307f3dbf34d580e54e19067
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
3c6fd44f9ae0cf60248dc64ee74d46afed633c45 25-Mar-2014 Andy Huang <ath@google.com> streamline inline attachment view param passing

Put more logic in CVF (or its secure/eml equiv) and pass fewer objects
of lower specificity to the intent builder.

More concretely, the viewer intent builder now accepts a Message, which
can be quite useful.

Bug: 7659807
Change-Id: I6be3bf87c3e01367a20c062d1e59f4ca6e1dd85e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
e46a5307264962338b70b22f4b97704714694634 21-Mar-2014 Andrew Sapperstein <asapperstein@google.com> RTL - show quoted text triangle. Fixes b/13565234.

Previously we included the right-pointing triangle
in the string translation. But that doesn't work for
RTL where the string should be left-pointing. So
now we prepend the proper triangle in code.

Change-Id: I53e09fcb623e65972710ac5c3d8baaef8229d168
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
986776bbd046c9569a4abb67501819bee61e7194 20-Feb-2014 Andy Huang <ath@google.com> 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
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
2160d53e6ae0bfb797569d616e735e46c21522ff 11-Feb-2014 Andy Huang <ath@google.com> fix text sizing inaccuracy from 980px switch

The side margin was in CSS px, but goalWidth was in dp. This caused the
goalWidth to be smaller than it should, which caused scrollWidth to be
smaller, which caused each message's zoom factor to be larger, which
caused text to be larger than it used to be.

Now. goalWidth and documentWidth both have body margins accounted for in
the proper units.

Bug: 12579959
Change-Id: Ice36b48f381cf3171b092ba27152aa56b64f4100
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
4dc732387454eef3ee6d89f9fa393630eb6213f9 05-Feb-2014 Andy Huang <ath@google.com> Render conversations to 980px viewport

Expand all conversations to 980px width to allow double-tap to continue
to work on newer Chromium builds. See
https://codereview.chromium.org/18850005.

cool side effects
* much more usable double-tap zoom factor on KK+ (now "it just works")
* better text rendering fidelity in complex layouts (text no longer
escapes bounds as it tended to do before)
* fixes text sizing edge cases where text was unexpectedly large and/or
line heights messed with text rendering

Initially enable these changes on both JB- and KK+ WebViews. Disable
NARROW_COLUMNS layout on JB- to prevent very short columns.
pros on JB-: better rendering fidelity like on KK+, consistency with KK+
cons on JB-: some power users will miss pinch-then-double-tap-to-reflow
functionality

Possible future improvement: use device-width viewport when full convo
fits to inherit Chromium's new fast-click-handling behavior.

Bug: 12579959
Bug: 10695551
Change-Id: I13f85a6df909a966fcd0862e5bd292ec6ae77212
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
8ec43e877a9c1925514f066655984e21fbd255e8 18-Dec-2013 Andrew Sapperstein <asapperstein@google.com> View inline images in photo viewer. b/5555553.

Uses the existing javascript image src rewriting
step to build a mapping of urls to message ids.

This mapping is passed into the InlineAttachmentViewIntentBuilder
so that it can use this information along with the
conversation id and account name to build attachment
and attachment list uris so that a photo viewer open
intent can be created.

Additionally, SecureConversationViewController will need a different
mechanism for this UI to work in Email/the eml viewer.

Change-Id: If14800348fe2191d0633bf768b8cb4e9746f6578
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
5c1692a5faeab220881a17a3427a8986ef874403 16-Sep-2013 Andrew Sapperstein <asapperstein@google.com> Initial printing support.

Needs mocks and redlines and such.
b/10712542

TODO:
Logos for Email and Gmail.
Attachment support.
Use offscreen webview.
Secure conversation view support.

Change-Id: Iec37a9a46e506ccf12fbbb775c1b47b08a0d9724
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
4ca3eb4fea185a57b4ecd770f50fe9ae03af8ee0 12-Sep-2013 Andrew Sapperstein <asapperstein@google.com> Hack fix for b/10709572.

Change-Id: I56582ca84cbe76539078eb5fdc39edd0480178b7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
68141df2d855af6520a19ff9127f69463d49c3de 20-Aug-2013 Andrew Sapperstein <asapperstein@google.com> New caret for tablet.

Not to be confused with a carrot, carat, or karat.

Change-Id: I3748d295a8599ffcb528bdfc1d376d3fc3b64396
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
606dbd7a44b8445e872c25c0fe080e3e12a47adf 31-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Remove ad code.

Moved to UnifiedGmail. Also refactored
HtmlConversationTemplates to use HtmlMessage,
a new interface instead of the Message class.

Change-Id: Ie14694b37800ed9eb9fc692d434508f66660d55b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
14f937408fe2451a91b44d3cd7d141347e716775 25-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Conversation View UI Refresh: Cards.

Lots of changes:
New show pictures asset.
Added border as a new view type in the conversation
view to vertically separate cards. Changing its size
is TBD.
Final UI for details header (both collapsed and
expanded).
Side borders are accomplished via a new overlay layer that
is positions a view to each side of the conversation view.
Lots of dimension changes, padding and margin changes, and
other pixelpushing.

Change-Id: I4029ae46896e27fe20b005c01b8df04bb2a46c2a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
9e2d407fdafeb874e640eb84017feaf784309075 22-Mar-2013 Scott Kennedy <skennedy@google.com> Clean up a bunch of warnings

Change-Id: I5c75564eeb2df9ec76d682dbe5f4465ff2a1a5d4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
0180f27c0998623b702274048b49cd4bec536cf1 09-Mar-2013 Andy Huang <ath@google.com> add <img> transform for readability

Shrink any <img> elements with an effective width wider than the
document. Instead of setting the width outright to the document
width, use "100%" + max-width so it can be smaller if the layout
allows.

Genericize the actionLog to be a list of functions, contexts, and
parameters. I would normally use bind() but A) it may not be available
on older WebKit builds, and B) it introduces an unnecessary closure.

Bug: 7400516
Change-Id: I5ab7f81674f9e238e6dc5ea04669d282c0586066
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
5ea5a8330532a75c83cbb30993a14ee9b821fa2a 08-Mar-2013 Andy Huang <ath@google.com> start munging wide <div> and <table> elements

Modify HTML content that is too wide if the experimental flag
is on.

Find <table> elements with a width wider than the body and
remove the widths in the hope that the table would otherwise
fit. Content authors often use this trick to prevent their
content from growing too wide in a very wide desktop browser
window.

Failing that, find all <div> elements where a width is
specified that is wider than the body, and turn the width into
a max-width.

Bug: 7400516
Change-Id: Ie4d3c2c4c50a191c30ee590dce71bc9bf6de8268
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
69aecc996f92521e3b2e1a11f7d3797227868cf2 05-Nov-2012 Andy Huang <ath@google.com> speculative fix for native WebView crashes

Towards the end of MR1, we saw more native crashes on
conversation load. It's possible it was purely due to increased
testing, but just in case it was due to loading animation
changes, go back to Gmail1-style content-ready code.

The document has a small div that initially has an
"initial-load" class set on JB+. The class is no longer
dynamically added in JS. The animation-start event listener
remains as-is, configured on DOM parse (and not later upon DOM
load).

Give the animation a different name from the CSS class that
triggers it, on the off-chance that this is crossing some wires.

Bug: 7370125
Change-Id: I4f0f807fbb9e32e024b6c74a6d9684e7fb337695
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
adbf3e8cadb66666f307352b72537fbac57b916f 13-Oct-2012 Andy Huang <ath@google.com> toggle normalization & zoom on/off

and wire it all up to a pref that re-renders upon change.

separately, make a few improvements to whitespace management
when zoomed in with normalized mode:
* place attachment overlays at the top of their regions
* place overlays above the first expanded message at the top of
the conversation, instead of the usual position just above the
message.
* impose a max zoom factor to limit excessive spacer whitespace

Bug: 7312540
Change-Id: Iae3afff0ee81e4ba9367568e884a041780b24ebf
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
bffc312614505b923f0054fde20d015bd21112cf 06-Oct-2012 Andy Huang <ath@google.com> do not wait for DOM onload before starting content ready signal

Gmail1 started the content-ready animation right away; the
initial state of the HTML had the animation already. Gmail2 was
waiting for the DOM load event before even starting the
animation, wasting a lot of time.

Starting the animation right away had a race condition where the
listener wasn't installed until later, so avoid any such race
by starting the animation immediately after registering the
listener.

Bug: 7258363
Change-Id: I00fc06998a06e1e4dce0d490ead9fbc6fef63ae0
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
014ea4c15d147794789b9c5bf4e243fa08781ad9 25-Sep-2012 Andy Huang <ath@google.com> handle sender/body changes in-place

Sending a new message updates sender string (for custom froms
and such) and the body (for elided text), after the message is
sent and synced. Avoid conversation view flashing (re-render)
in those cases by applying the changes in-place.

Sender string changes will update all dependent adapter items,
and a dataset change on the adapter re-renders all overlay
views.

Body changes are handled by sending affected IDs to JS so it can
request individual message bodies. Quoted text collapsing is
then re-applied on each new body.

Bug: 7183109
Change-Id: I630187c276ffc63448e6b457c9cd02afd452c438
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
3bcf180f8104bc27319086a9a6ece5a3c2917c37 09-Sep-2012 mindyp <mindyp@google.com> Add loading animations to conversation view

fixes b/6272925 jank - conversation loading isn't animated
fixes b/7131797 Blank scren shown for live conversation, when in airplane mode
Note: need to do a next cl that puts off showing the spinner
until at least XXX ms have passed
Also, we cant use the software layer for rendering like we did
in gmail1
it looks like there is a skia crash that triggers when we try
to use software / switch to hardware rendering for the browser
need to investigate that more

Change-Id: I96a30b700c3e88d52e603fe2f11b44d113e013d2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
256b35c0a8287f48c28e0d1ba3fae65790063295 23-Aug-2012 Andy Huang <ath@google.com> add margins to conversation view

Also fix some left/right balance problems on wide messages.

Bug: 6336075
Bug: 6375007
Change-Id: I8fd4a3099d0670f68295bf8f28d2ba55e7177bdc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
d47877e3860ea4249eddb3f6efefbc6cd39f2320 10-Aug-2012 Andy Huang <ath@google.com> message "serverId" field is a string, not a long

Also remove some unused usage of serverId.

Change-Id: Ic421a77bfff6218a07d35f80219a2fae729ceb13
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
cebcc64fbd69618ff89f9fac0bfe9b9e7d7ce104 08-Aug-2012 Paul Westbrook <pwestbro@google.com> inline attachment handling

Allow the provider to specify the real base url that should
be used for relative urls.

Also allow the provider to specify a cookie that should be used.

Bug: 6951268

Change-Id: I6f5ecf69b262b6c877eecbd1944aa03c46c85382
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
23014705ca9872cd5004a1aa76e83ae260165eca 09-Jul-2012 Andy Huang <ath@google.com> better handling of wide message content

Don't hide horizontal overflow, so content in extra-wide
messages is scrollable. (Downside is that an initial swipe on
such conversations will scroll the content rather than going to
ViewPager.)

Use default WebView text layout algorithm (NARROW_COLUMNS). It
doesn't kick in by default, possibly because of the method we
use to shrink wide messages, but at least double-tap after a
manual zoom-in will trigger line re-wrapping.

NARROW_COLUMNS reflow can change the HTML height, so we need to
remeasure and reposition headers when that happens. Added code
to listen for WebView mContentHeight changes. This is done
circuitously (via invalidate()) because I don't know of a more
natural way to to know when this happens. Although invalidate()
happens all the time, this should be pretty cheap because no
work is done unless the DOM height changes.

Clean up screen-pixel -> HTML-pixel conversion code. This will
be handy when trying to make the page initially wide to further
improve line wrapping behavior and reduce the frequency of
the extra-wide case. Initial-wide-mode presents a host of
side effects to be addressed in a future CL.

Bug: 6389819
Bug: 6318848

Change-Id: I3ad2bd1ca6c1f6c0859af1a10056578ea4faf073
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
b334c9035e9b7a38766bb66c29da2208525d1e11 25-Jun-2012 Paul Westbrook <pwestbro@google.com> Changes to support different Log tags

Change-Id: I7121fbf7132444fc0f5c0c130373e3f2d1a3cf7a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
46dfba6160b55a582b344328067e3dafeb881dd9 19-Apr-2012 Andy Huang <ath@google.com> super-collapsed blocks

Expanding a block inserts HTML for all bodies in that block, as
was done in ICS. This could be improved to be more lazy.

The block's layout has a mostly useless wrapper for the 1px
bottom white padding, because ConversationContainer does not yet
support margins on child overlays.

The overlay container now listens to adapter changes, which
was necessary to update on super-collapsed expansion. This
should also fix crashes and strange layouts on draft deletion.

Also fixed monkey NPE on url click while I was in there.

Bug: 6325429
Bug: 6260673
Bug: 6258859

Change-Id: I77347b58bbec49b4b5b58a2b3de7e5e9f291ca9c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
c7543579c6a97c0ae3341578332f56d4d226f34c 04-Apr-2012 Andy Huang <ath@google.com> support message header collapsing

* toggle header collapse/expand
* initially render read messages collapsed
* collapse removes attachments footer and stops loader
* expand creates/reuses attachments footer, but ONLY if visible
* can (mostly) expand/collapse details
* can expand/collapse quoted text
* add lots of logging (disabled during scrolling!) to catch
strange layouts

Change-Id: I73f533c91d24ef1c05919d0a3b396f276898107a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
7bdc3750454efe59617b7df945eadd7e59bee954 26-Mar-2012 Andy Huang <ath@google.com> building blocks for bottom-aligned attachments

Attachment overlays now warrant their own adapter entries,
because they are no longer attached to each message header.

So since cursor items no longer map 1:1 to adapter items, add a
new specialized adapter to house different kinds of scrolling
overlay views. This support is also needed for super-collapsed
blocks.

The adapter is also an ideal place to store transient render
state like 'expanded' and 'show pics', as each ConversationItem
can manage its own state instead of having the fragment do it.
And view recycling requires that the adapter remember item
state as you scroll around anyway.

Next CL will actually separate attachment views and logic out
of MessageHeaderView.

Change-Id: Ibc589915f01ada0d9a41d8968a0ee63be6030449
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
3233bff8ae08a56543c9f5abf1bc6ab38f0574ce 21-Mar-2012 Andy Huang <ath@google.com> hook up 'show pictures' button

Add 'show pictures' button for messages where the provider
claims it embeds external resources. In Gmail, this is true when
a message contains external image hotlinks. Inline image
attachments are not yet handled.

'always show' tells the provider to whitelist the message sender
to allow images in the future (works with Gmail provider).

Change-Id: I1b174d8fad9da481ec305caff06d109f9d215093
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
b9c6e0a277c8a5ad33d3c2d5e22485c58198c76d 14-Mar-2012 Andy Huang <ath@google.com> Handle plaintext message bodies

Add support for plaintext message bodies. HTML-escape their
content to keep plaintext as plaintext when rendered in WebView.

Change-Id: Ia468df24eace6baec45658015f12fd02be1b3253
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java
f70fc4052b72a850bbb9be585d0f5a4877ee9448 18-Feb-2012 Andy Huang <ath@google.com> conversation view zooming

Zoom is enabled on the entire conversation using the built-in
WebView mechanism.

Wide messages are individually best-effort shrunken to
fit-width.

Start a custom ViewGroup to hold both message headers and the
single WebView. A common view parent makes input handling easy:
the WebView drives scroll position, and position is relayed
to the custom ViewGroup to cheaply shift around headers without
a full relayout. For now, all headers are inflated at once, but
soon they can be recycled depending on the virtual scroll
viewport.

Change-Id: I92555f9b79e10630457b17ca970ab9a2e9028e80
/packages/apps/UnifiedEmail/src/com/android/mail/ui/HtmlConversationTemplates.java