diff options
author | Diogo Ferreira <diogo@underdev.org> | 2016-02-05 14:09:46 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-02-15 10:20:01 -0800 |
commit | 847234f22b8a532b7207d10291b71c271c766f8e (patch) | |
tree | 225029085c9828dd27697e78e4a6b63e2beb6f43 /src | |
parent | bdb8b6462eb49c8cf8c14336a694bce7e052ac82 (diff) | |
download | packages_apps_ContactsCommon-847234f22b8a532b7207d10291b71c271c766f8e.tar.gz packages_apps_ContactsCommon-847234f22b8a532b7207d10291b71c271c766f8e.tar.bz2 packages_apps_ContactsCommon-847234f22b8a532b7207d10291b71c271c766f8e.zip |
ContactPhotoManager: Consider BITMAP_UNAVAILABLE as a cache miss
When a default image is generated, it is cached as an instance of
BITMAP_UNAVAILABLE. The code that renders default images interprets
null (not present) and null content (invalid byte array) as misses
and generates default images. However, it misses the case of
previously generated default images.
An easy way to repro this is in Sim Contacts:
1) Go to contacts
2) Chose Import from Sim
3) Observe that images are shown correctly
4) Go back, chose import from sim again
5) Observe that images are missing
6) (As a side-effect pressing one will crash the app).
This patch considers a cache BITMAP_UNAVAILABLE as a cache miss
when generating default images, fixing the problem above.
Change-Id: I61050e68b27c605392d0649316ba12a4660a7289
Ticket: CYNGNOS-1829
Ticket: CRACKLING-910
Ticket: KIPPER-590
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/contacts/common/ContactPhotoManager.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/com/android/contacts/common/ContactPhotoManager.java b/src/com/android/contacts/common/ContactPhotoManager.java index 858efb65..2351138f 100644 --- a/src/com/android/contacts/common/ContactPhotoManager.java +++ b/src/com/android/contacts/common/ContactPhotoManager.java @@ -1065,7 +1065,7 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback { */ private boolean loadCachedPhoto(ImageView view, Request request, boolean fadeIn) { BitmapHolder holder = mBitmapHolderCache.get(request.getKey()); - if (holder == null) { + if (holder == null || holder == BITMAP_UNAVAILABLE) { // The bitmap has not been loaded ==> show default avatar request.applyDefaultImage(view, request.mIsCircular); return false; |