History log of /packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e79eaca46a53e1d8d4aeef47e918f320469db46d 29-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Add another new view type. b/10488449.

Change-Id: I5ea813731e147643b2b4fb0611c6d90a58a8e822
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
98f6e228e0522d9e30d2043a73ae31f78fc52e62 29-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Add new view type. b/10488449.

Change-Id: I2049d3386e5920feb33aee9a9b967e1894c22712
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
968e014c857439de821cf2590ec6aa44363352d0 22-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Rebind MessageHeaderView if on-screen.

Fixes b/10413376. Previously, if the MessageHeaderView
was on screen while its snap header was tapped (to collapse it),
it would not be updated with its new state (since they were two
separate views). The rebind takes care of this.

Change-Id: I5a24338b52e1d0f220a02f8e1ebc92b53814d16c
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
888388c1485fd8c694abacb638fb54273c5f411b 02-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Conversation View UI Refresh: bottom borders.

Bottom borders now extend to the end of the screen.
There is one small temporary hack that I will fix for
real tomorrow where there's a difference of 2 pixels.
For now, we cheat since the extended border can bleed
into the real border by a few pixels with no real problem.

Change-Id: I1ccfbfe3fd1eca30be1c8eb5928649dd5f1a6619
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
cee3c90574b48ccaa0f8b9f9341383c231ed41d2 31-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Conversation UI Visual Refresh: border fixes.

Borders now expand and collapsed based upon the state
of the messages above and below them. Also fixed a bug
where replying to a message added an additional border.

Change-Id: Ia90caf4ea595767a90213fe33b29e1bd75c0aca0
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
e539880d39620d7e26b31c8b5b381a7e9d1a722e 30-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Conversation View UI Refresh: Card Borders.

Also some tablet stuff. Top borders aren't
working. Need a new asset for them. But this'll
do for tonight.

Change-Id: I6501b39c1d89f025ff68aa3cf19b3c29365c3f92
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
12c03aa47574b6d0b5326f4c55fdd28f73e4d5be 26-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Message Ads: preference manager url and new asset.

Change-Id: Ic98f4244073a68c250bd81bf29360d62d402e978
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
9f957f3463fd149d33c209409e2bba500b539177 20-Jul-2013 Andrew Sapperstein <asapperstein@google.com> Initial Ads work.

Created AdViewFragment and AdHeaderView.

Change-Id: I6c534579ed7fb5ca53e12ca57f9f8091717cbb9f
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
7638a1004e7c8ed7a85620243da3b051b60217e8 25-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Final eml viewer cleanup.

Fixes b/9560839. Now we show the title of
the eml file and we also show an overflow
button with settings/send feedback/help.

Change-Id: I5eab245d9fd47e37b83eadcb419255939117ab39
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
4ddda2f0a4ee5381a90779a6939b05b064ce5d11 10-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Working implementation of eml viewer.

Everything works except attachments.
The implementation uses a controller that is used
by both SecureConversationViewFragment and the new
EmlMessageViewFragment to do the rendering work.

Change-Id: I4d8b9b56e6609c3a81b902b102a90f1e50c115cd
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
8812d3c50e35c4f2a02d29c35c76082c4ebec0cd 05-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Refactor ConversationMessage out of MessageCursor.

Just moved the static final inner class to its own
file and fixed up the imports. Also moved the MimeMessage
parsing into Message instead of in ConversationMessage.

Change-Id: Ic35d4cf5e52b392d68898ff47efaeeee4d0865b0
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
69a6cdff8afde77ec9bcd75a5651ee212344019e 09-Jan-2013 Vikram Aggarwal <viki@google.com> Allow veiled address pattern to be updated through settings

Change-Id: Ibbd412308283fd2c0cae0abbec0a43be1db1b3ad
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
289b45a2672e3837adf0c40ccf27f879f5aa28e6 08-Nov-2012 Scott Kennedy <skennedy@google.com> Merge "Store the "Show pictures" state on rotation" into jb-ub-mail
8f1877832b0f3bc55e6d63ccf70dfae7dd8328c9 07-Nov-2012 Andy Huang <ath@google.com> wire up snap headers pref

Have conversation view read the initial value upon view creation
and update the value in ConversationContainer via dataset
change, which is triggered by account change (which is triggered
by settings change!).

Bug: 7217360
Change-Id: I55ac947dea692af6ad32995d0970c69dbdf5c2ef
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
202738427ede23dd5863583aa3df17e4abfbf5e2 07-Nov-2012 Scott Kennedy <skennedy@google.com> Store the "Show pictures" state on rotation

Keep track of whether the user has selected "Show pictures" so that
we don't prompt them again if they rotate the device.

Bug: 7255132
Change-Id: I7109465e79a7a0d6c126dcf3cef614eae8cb81f8
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
6b3d0d9ab407c3d8b6bcb73bddbfd23f2513bb83 30-Oct-2012 Andy Huang <ath@google.com> update header sending status in-place (more so)

Previously, an in-place header update avoided a WebView
re-render, but did re-render all overlays. This is normally
imperceptible, but thumbnail views flicker as they are rendered.

Since only a couple of overlay views are truly affected by
sender updates, update those views in-place when they are
present. This is only supported on MessageHeaderViews for now.

Bug: 7434748
Change-Id: Ifdebea1410dadfceefae52d406891b5383e9ab15
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
6cb004b07e484259384a9c07dd0d00a07ca80eee 27-Oct-2012 Andy Huang <ath@google.com> invalidate all headers when re-rendering

Ifd2d3d introduced a regression when re-rendering that leaves
the existing headers around. This is bad when the new
conversation is shorter (e.g. on draft discard), or if the
messages are re-ordered (nearly simultaneous sending).

Clear header views when clearing the adapter as was done
previously.

Bug: 7422803
Bug: 7418910
Change-Id: Iba6a85d249917c8deeeaa978d2ebb8d59102c1ad
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
06c0362f59437f3ea2b5832272fb66158bb4b8c0 23-Oct-2012 Andy Huang <ath@google.com> optimize re-rendering a conversation for a single outgoing message

Rather than rendering the conversation from scratch, look for
the special case of a single new message from the user that is
the last message, and just append the message HTML at the end of
the existing conversation.

To avoid stacking the new header on top of the previously last
message, do not notify ConversationContainer of dataset change
in this process. (An adapter dataset change means the container
will toss out all overlay views and immediately render given
the current spacers and adapter items. Do not want.)

The overlays for the new message will be drawn later when JS
notifies of a geometry change.

Bug: 7378693
Change-Id: Ifd2d3da8c57f685bbeae18f3d42c60821a97368c
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
7388dba58aecafacd91ded0f787cf01bfc7af232 26-Sep-2012 Andy Huang <ath@google.com> cleanup. fix minor logging errors.

Don't notify JS of a height change during initial render.
(it's not a height change if it's the first time.)
Don't even bother measuring the conversation header during
initial render, since the view that's being bound is temporary
and not attached yet.

Bug: 7154554
Change-Id: I8c8147123bb15173888a3ad95e1ca3703018a520
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
ab2d998506c83e82ddae25b6ba1419414e1e8122 25-Sep-2012 Mark Wei <markwei@google.com> Fixed conversation label header doesn't increase height when adding labels

Bug: 7154554
Change-Id: Iacdf4bb7466978c0da3e3985d14e42894dac2ff7
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
f4fce1227d8b49f45e6569f1590565f2df9e8d6e 15-Sep-2012 mindyp <mindyp@google.com> Stripped down view for email that uses no javascript.

TODO: push message header off the top of the screen like browser url bar
TODO: use spinner in the secureconversationviewfragment while waiting for the page to load;
should be able to push logic to the AbstractConversationViewFragment
fixees b/6383847 Implement secure/sanitized conversation view for unsanitized message content from IMAP and POP servers
Change-Id: I03299a2d193ad1dc8fb5cc509eaf5d9f3dae6b0f
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
8081df46ef5a7794374e41cd1836e778a2da9b31 11-Sep-2012 Paul Westbrook <pwestbro@google.com> Restore download progress dialog

Now the attachment download progress is using an DialogFragment
so the dialog correctly gets restored on orientation change

Bug: 7137689
Change-Id: I90a225f423bf75fd4dbeb464051374919a3cff62
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
28b7aee7fa1f7d096d33fc823a88a64f7a3fa79d 21-Aug-2012 Andy Huang <ath@google.com> update conversation view on reply-all setting change

Use existing adapter's dataset change signal-- dump overlays
and re-render.
Begin to assume that Settings always hangs off Account.

Bug: 6245217
Change-Id: I70f98f641eee6d193f9842a578a889197f650941
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
59e0b18db1bd06cfb74693d7dbb0cb48112a69b1 14-Aug-2012 Andy Huang <ath@google.com> snap headers

Low-speed obscuring of snap header not yet implemented.

Change-Id: I23bcf61a8de6d9d719d40a6b65009c7711ef0e19
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
839ada22ea84251dde3305003d2f8fc5bf14914e 21-Jul-2012 Andy Huang <ath@google.com> save/load conversation state, add granular mark unread

Centralize mark read/unread logic in AAC.
Restore some conversation view state upon rotation.
Clean up code for star/unstar from conversation view. Move most
of that logic to AAC.
Move transient conversation state from Message into
ConversationMessage subclass.
Add new AsyncTask for content provider single or batch requests.
We should move to using this instead of AsyncQueryHandler or a
raw thread.

Bug: 6293711
Change-Id: I907a687ef7ff287fece8c90725dbd204a02485e9
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
b8331b4565566ca733997398e8c07a26cd2bee98 17-Jul-2012 Andy Huang <ath@google.com> wire up Quick Contacts

Also generalized telling header items whether or not a bind is
only for the sake of height measurement.

Bug: 6373134
Change-Id: I759e4fd95dca874b29a7e3b392ee83f7e7e6f760
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
65fe28fa88daad08f3be4c084ca5b4eaa366d1a7 07-Apr-2012 Andy Huang <ath@google.com> optimize low-hanging fruit found using traceview

* View.getTag/setTag is a slow way of finding an overlay view;
switch to a SparseArray
* this also obsoletes mChildrenToRemove since we can immediately
remove overlays from the SparseArray
* bring back the Email Address cache to avoid repeated parsing
* avoid repeatedly calling findViewById for each header
* cache expensive timestamps and recipient summary strings

Change-Id: Ic76265848e4956a28a44c4a2e3e726ec9ef6bfaf
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
9875bb4fc00347fc76f432a6e9ec5e6987679ca9 05-Apr-2012 Andy Huang <ath@google.com> remeasure when overlay views change size

The initial measure() (for sending to WebView) is done too soon,
so after a height change, ensure that the container re-measures.
The container will only measure newly bound views, or views with
newly changed heights, so most scrolling continues to not
trigger measure().

It would be more correct to mark the overlay *view* itself
valid or invalid, not the item, but apps don't have access to
the measurement flags on View.

Also do lots of cleanup in the area of measure/layout of the
Container. Prevent children of the container from requesting
layout because they don't push on each other in the normal way.
(a followup onGeometryChange is needed to re-position properly)
But a layout triggered from elsewhere should re-measure and
re-position the container's overlays.

Bug: 6297423

Change-Id: Id9196322774e732417e926ac87ce2ec524bf425e
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java
4c232e18b5d667931d8aaeb29f19394016c17d02 03-Apr-2012 Mindy Pereira <mindyp@google.com> Respect default replyall setting.

Change-Id: I3465b6bbbf9edcad15b682265eedf066acb39839
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.java
f0e95c3e49c8a12009dd138d3985f5e9fb8f2754 03-Apr-2012 Andy Huang <ath@google.com> bottom-aligned attachments

Refactor attachment view logic out of MessageHeaderView into
its own view class, paired with MessageFooterItem.

Change-Id: Ic6539f52d53be0e2d23144abec1baffb9368f8cd
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationViewAdapter.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/browse/ConversationViewAdapter.java