History log of /packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
19bcaab55bfb33784e1afbb21d274249f16d0eec 28-Aug-2013 Mark Wei <markwei@google.com> Clear sender images when dimensions change.

When switching to two-pane layout, the dimensions of sender images change. This
caused a bug where we cleared the sender image bitmap, but failed to update the
state to reflect that. What resulted was an empty bitmap being drawn to the
screen.

Bug: 9885718
Change-Id: I6e421fe47c52ee940b994369e92aa0bc3d057327
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
1fea6a3cffcc8c4afc3d877e5dc57d29f9665942 10-Jul-2013 Scott Kennedy <skennedy@google.com> Better CAB mode

1. Flip out contact image, scale in a checkbox optionally on grey
background
2. Flip stars into peek icons
3. Only peek icon will peek

Bug: 9592097
Change-Id: Ia972132284ef62f4964c7027ab09157a525dd804
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
81aea35d45b3d0191ec595562a2fcf67009845d5 10-Jul-2013 Mark Wei <markwei@google.com> Final UI for Attachment Previews.

Placeholder pulsates for images not yet loaded.
One images loads at a time, that one image will display a spinning progressbar
after a delay.
Progress bar fixes to ensure it is rotates smoothly.
Clear section before drawing to it so transparent images look right.
Avoid PhotoManager load loop.

Bug: 9745486
Bug: 9816053
Change-Id: I2e65b3e3484d6da47d4e2523404dc745b99dd04c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
479505d71969e26b0785d8e0e1b81108731cf827 21-Mar-2013 Mark Wei <markwei@google.com> Attachments in Conversation List: Backend changes so that the appropriate
attachments are passed to the UI. Implement PhotoManager so we can start showing
images.

Upon sync, we extract two image attachments from the first unread message, and
add them to the conversations table.

UI changes as well.

Load BEST if that is available, else load SIMPLE.
No vertical dividers in attachment previews.
Attachment previews are above labels.
Round badge appears for unread conversations when there are more images than
shown. Only appears after the previews have loaded.
Clicking on the attachment previews launches photoviewer.
Attempt to load bigger images than necessary to prevent reloading during mark
read/unread and rotate.
Show animated loading icon while previews are loading.
Previews load from top to bottom, from left to right.

Big performance improvements:
No longer decoding bitmap on UI thread. This kills most of the jank.
Only load when we are not scrolling. This kills a lot of jank.
Remaining jank will be delt with later:
DividedImageCanvas.setDimensions() creates a huge empty bitmap on the UI
thread, which causes a GC. ath will fix.

Multiple images in one line now load whatever's ready first. Added tracing.
Bitmap cache given more memory.
Following ath's advice, decode Bitmap from InputStream rather than byte[]. Don't
compress into BitmapHolder. Only use the bigger Bitmap cache.

Bug: 7481049
Change-Id: Icf823f56abc9345e6d0b800a1e6d45444d8fa028
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
d94312288286017a38603cb10becd2ad52580524 01-May-2013 Paul Westbrook <pwestbro@google.com> Revert "Add analytics support"

This reverts commit cebb805a486d38bca50009905777e170b375b066.

Bug: 8764535
Change-Id: I70092a456bcfeda2e60f93e747e5e9097df0b77e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
cebb805a486d38bca50009905777e170b375b066 26-Apr-2013 Paul Westbrook <pwestbro@google.com> Add analytics support

This adds support for analytics, and tracks how popluated the letter
tiles are.

Change-Id: I59e699cf455f1b80d585bf809786912a67d9aed6
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
bbe7f92b35c39d80cdd1c0ee88ee12b0ec0564dd 22-Apr-2013 Andy Huang <ath@google.com> don't generate a default tile again when contact lookup fails

a small win.

Bug: 8051779
Change-Id: Icd0af6be6b9f5646af9d202253cae12d0ab10eb3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
b53fe05fb867685d0d3f2f37daf0f93bc6488ded 21-Apr-2013 Andy Huang <ath@google.com> misc contact photo optimizations

* Only invalidate the contact image region on async load.
* Calculate hash codes by hand to save autoboxing of ints.
* Don't parse Folder color strings at draw time.
* Switch ConcurrentHashMap to SynchronizedMap. No need for concurrent
write support, as we only have one writer thread. Write perf is much
better.

No-op stale photo requests more correctly now. Previously, a canvas that
was re-used and happened to have the same person in it would apply the
photo even if the dimensions didn't match. Now, PhotoManager makes a
record of the canvas's "generation" at request time, so the results can
later be rejected entirely if the canvas generation differs.

Bug: 8051779
Change-Id: I31c3fd0c3bcc10641f264b6e30eb133cc0bf77b3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
8b7fab5413a3359b41a603b0567c3e375135676f 15-Apr-2013 Andy Huang <ath@google.com> optimize contact photos in list

Overhaul the photo manager:
* lower the thread priority of the worker thread
* in addition to having the worker thread load JPEG images from disk,
have it decode those images into exactly-sized, properly cropped
bitmaps that the UI thread can use without further processing
* ignore stale requests that are now more likely to occur when list view
recycling reuses a canvas before a default image for an old request
is applied

Minor optimizations throughout photo and tile loading codepath.

Recreate bitmaps when the canvas size changes, as it does on 2-pane
when switching between wide and normal layouts.

Fix default bitmap drawing (for non-English senders) when applied to
HALF or QUARTER scale.

Bug: 8051779
Change-Id: Ic3a5451538ddc2c955b645eb06816266542363d8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
ff8553f20964f4c31b0c503a9e1daff6ae08a9c7 06-Apr-2013 Scott Kennedy <skennedy@google.com> Cleanup

Change-Id: Iee8abf75639450d469632e43fe0e102b687558db
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
47cb510ea11c8886434575118068fc91eaa25fac 19-Mar-2013 Mark Wei <markwei@google.com> Refactor ContactPhotoManager so we can reuse its preloading and caching
mechanisms for other tasks.

I've elevated all the generic preloading and caching code to an abstract
PhotoManager class. ContactPhotoManager now extends this class, and contains all
the contacts specific code. I will be creating a new AttachmentPhotoManager
subclass later, so that I can take advantage of PhotoManager.

Other refactored classes are DividedImageCanvas and PhotoLoaderThread.

Bug: 7481049
Change-Id: I2535ab33af9c1cd074ca1ee29153499383ed5389
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
3f22573bf75c103df761cc093703737e8f2c63b1 17-Jan-2013 mindyp <mindyp@google.com> Small tweaks to polish the tiles

Change-Id: I776ebf36a2b6d36b308a13cfc021ff96084eb1ad
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
b47828febe6238af8d367b62ed893a4ad65800a5 17-Jan-2013 mindyp <mindyp@google.com> Add white line dividers between multiple contact images; better centering of tiles; use roboto for tile letters

Change-Id: Id3d8531019783518e4df75cf5c2f1d35dac8d48c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
205e40d18ebb530f538d157787446836cf0180a0 17-Jan-2013 mindyp <mindyp@google.com> New redlines for scrabble tiles; use people default contact icon as fallback

This is ic_contact_picture provided from the chips library
Change-Id: Id3f51949f11a3017362d89bdc40daf54e0e158db
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
6fbad637da287ba8e864e5b8b4548f3e261c564a 17-Jan-2013 mindyp <mindyp@google.com> Get the associated division ids from the dividedimagecanvas; don't depend on the header

Fixes a random crash when scrolling the list

Change-Id: Ie0a923af533b2f2b6f9f9c0003006922f4114cf4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
f832d5f8b490e184d0c9cd70bba8f32ed29ff51a 16-Jan-2013 mindyp <mindyp@google.com> Use position, item, email to make a unique request id.

Change-Id: Ie0fdf2f00905ae4ce66997064c24b60e0556ae97
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
25638b4dda53181d4b3124463c1d8f70229e091b 16-Jan-2013 mindyp <mindyp@google.com> Small fix to getting the size.

Must have changed this in refactoring

Change-Id: I8e94eb3d04184244ece322431dbfc90ca8280933
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
646d4fc7ba80f71feb6701b8e5ba4b24c3462f7c 16-Jan-2013 mindyp <mindyp@google.com> Make sure we don't override existing requests for the DivisionCanvasView.

Since each view could hold up to 4, this had been replacing earlier requests
with later requests for images that were intended for other positions
in the DivisionCanvasView.

Change-Id: Ica8e9d101cea0041281a155ca7ec979807559aa5
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
539555569b773c722374d0746fa756568e37811a 11-Jan-2013 mindyp <mindyp@google.com> Improved scaling for letter tiles; match only us letters

Change-Id: Ic9b89d5fdd262a5a8bcb0ca797ae005db8d65783
Note: tiles are still disabled

Conflicts:
src/com/android/mail/photomanager/LetterTileProvider.java
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
324c874dc0ada67d7687b0def079487f5b1f2a02 10-Jan-2013 mindyp <mindyp@google.com> Don't do this check, since the first image is always the default img.

Change-Id: I6ad416cd2c3ce7003b92f9ab7fa172cdedeb2909
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
a69ce20cc853aa7553004a20e08bcd996d3f6b3f 10-Jan-2013 mindyp <mindyp@google.com> Make sure we resize even single images

Sometimes the contact photo as it is stored is too small
Shown in the case where I had schmindor's icon as the only image

Change-Id: I2aab2027607a39739fbe21b8b9573a555b8e7f46
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
379ff59adafa0e9f6a091580ceddd7daa2696d5b 03-Jan-2013 mindyp <mindyp@google.com> Performance tweaks/ cleanup for loading sender contact photos

Avoids making extra bitmaps until we actually go to size them
Does not make extra bitmaps for the default images (does a scale instead)

MUCH better perf
Change-Id: I962b81f0b19aaba2515329e9f46f7bbc9ff65c7c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
9009e59c0435128fd26aff429bdb2c4eaa91db3a 03-Jan-2013 mindyp <mindyp@google.com> Performance tweaks/ cleanup for loading sender contact photos

Change-Id: I5106bceb90c6df13fecd09e44729541c14cc2e3d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java
6d11c8fbca5d54a013d78c85d6eb28f590093e3c 03-Jan-2013 mindyp <mindyp@google.com> Sender emails are now available. Use the senders email to lookup their contact photo.

Creates the DividedImageCanvas, a light weight way of collecting and rendering
sender images to a canvas than a standard android view.
Also, allows us to get bitmap processing off the main thread in a future perf related cl
TODO: perf pass;
implement correct visual design for letter tiles once available
Change-Id: I67b8f74f40703543609d1011098062c98e3e42cc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/DividedImageCanvas.java