History log of /packages/apps/UnifiedEmail/src/com/android/mail/ui/ImageCanvas.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d90639004a3551d7fb7086f318d4c576d54d2b86 03-Aug-2013 Scott Kennedy <skennedy@google.com> More warning cleanup

Change-Id: I22970341bf11eb355aa495f61c022efb8db61bcb
/packages/apps/UnifiedEmail/src/com/android/mail/ui/ImageCanvas.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/ImageCanvas.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/ImageCanvas.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/ImageCanvas.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/ImageCanvas.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/ImageCanvas.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/ImageCanvas.java