summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDiogo Ferreira <diogo@underdev.org>2016-02-05 14:09:46 +0000
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-02-15 10:20:01 -0800
commit847234f22b8a532b7207d10291b71c271c766f8e (patch)
tree225029085c9828dd27697e78e4a6b63e2beb6f43 /src
parentbdb8b6462eb49c8cf8c14336a694bce7e052ac82 (diff)
downloadandroid_packages_apps_ContactsCommon-847234f22b8a532b7207d10291b71c271c766f8e.tar.gz
android_packages_apps_ContactsCommon-847234f22b8a532b7207d10291b71c271c766f8e.tar.bz2
android_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.java2
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;