diff options
author | Rohit Yengisetty <rohit@cyngn.com> | 2015-07-07 15:37:27 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-07-17 09:44:16 -0700 |
commit | 49ff098b926834a59280737c0a912ef54a260419 (patch) | |
tree | 568c8c0d00daa0235729f3a723ddc629a605c0cc | |
parent | ec13cc94c241c7cc50673772a45c36eaeff4cc78 (diff) | |
download | android_packages_apps_ContactsCommon-49ff098b926834a59280737c0a912ef54a260419.tar.gz android_packages_apps_ContactsCommon-49ff098b926834a59280737c0a912ef54a260419.tar.bz2 android_packages_apps_ContactsCommon-49ff098b926834a59280737c0a912ef54a260419.zip |
ContactPhotoManager - Add ability to fetch contact bitmap based on photo id
Change-Id: Ie9f4ec17ec7f598c8d0005e27107f300af829fc3
-rw-r--r-- | TestCommon/src/com/android/contacts/common/test/mocks/MockContactPhotoManager.java | 5 | ||||
-rw-r--r-- | src/com/android/contacts/common/ContactPhotoManager.java | 36 |
2 files changed, 36 insertions, 5 deletions
diff --git a/TestCommon/src/com/android/contacts/common/test/mocks/MockContactPhotoManager.java b/TestCommon/src/com/android/contacts/common/test/mocks/MockContactPhotoManager.java index fce5cee9..af96b30c 100644 --- a/TestCommon/src/com/android/contacts/common/test/mocks/MockContactPhotoManager.java +++ b/TestCommon/src/com/android/contacts/common/test/mocks/MockContactPhotoManager.java @@ -51,6 +51,11 @@ public class MockContactPhotoManager extends ContactPhotoManager { } @Override + public void getBitmapForContact(long photoId, ImageView imgView, int widthHint, + PhotoFetcherCallback cb) { + } + + @Override public void removePhoto(ImageView view) { view.setImageDrawable(null); } diff --git a/src/com/android/contacts/common/ContactPhotoManager.java b/src/com/android/contacts/common/ContactPhotoManager.java index 547b5623..6fa20f69 100644 --- a/src/com/android/contacts/common/ContactPhotoManager.java +++ b/src/com/android/contacts/common/ContactPhotoManager.java @@ -543,6 +543,8 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { public abstract void getBitmapForContact(Uri photoUri, ImageView imgView, int widthHint, PhotoFetcherCallback cb); + public abstract void getBitmapForContact(long photoId, ImageView imgView, int widthHint, + PhotoFetcherCallback cb); /** * Calls {@link #loadPhoto(ImageView, Uri, boolean, boolean, DefaultImageRequest, * DefaultImageProvider)} with {@link #DEFAULT_AVATAR} and with the assumption, that @@ -917,13 +919,22 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback { // formulate the contact bitmap request Request request = Request.createBitmapOnly(photoUri, widthHint, cb); - // check bitmap cache - boolean done = decodeContactBitmapFromCache(request); + getBitmapForContact(imgView, request); + } - // if not in cache, put request in loading queue + @Override + public void getBitmapForContact(long photoId, ImageView imgView, int widthHint, + PhotoFetcherCallback cb) { + if (photoId <= 0) return; + Request request = Request.createBitmapOnly(photoId, widthHint, cb); + getBitmapForContact(imgView, request); + } + + private void getBitmapForContact(ImageView imgView, Request request) { + boolean done = decodeContactBitmapFromCache(request); + // if not in cache, put request into loading queue if (!done) { - Request loadRequest = Request.createBitmapOnly(photoUri, widthHint, cb); - mPendingRequests.put(imgView, loadRequest); + mPendingRequests.put(imgView, request); if (!mPaused) { requestLoading(); } @@ -1737,6 +1748,21 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback { return request; } + public static Request createBitmapOnly(long photoId, int requestedExtent, + PhotoFetcherCallback cb) { + return createBitmapOnly(photoId, requestedExtent, cb, null); + } + + public static Request createBitmapOnly(long photoId, int requestedExtent, + PhotoFetcherCallback cb, DefaultImageRequest defaultImageRequest) { + Request request = new Request(photoId, null, requestedExtent, false, false, null, + defaultImageRequest); + request.setBitmapOnly(); + request.mCallback = cb; + + return request; + } + public boolean isBitmapOnly() { return mIsBitmapOnly; } |