summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2015-04-22 09:27:38 -0700
committerMichael Bestas <mikeioannina@gmail.com>2015-04-23 01:22:10 +0000
commit5df27c08028896bf90f548ff5b81d1b682325f86 (patch)
treeed94eab27b4e659e512ea711ab5e8de7970b0f3f
parentf23375743411d20f76ee5b2a772838f3f230644a (diff)
downloadandroid_packages_apps_ContactsCommon-5df27c08028896bf90f548ff5b81d1b682325f86.tar.gz
android_packages_apps_ContactsCommon-5df27c08028896bf90f548ff5b81d1b682325f86.tar.bz2
android_packages_apps_ContactsCommon-5df27c08028896bf90f548ff5b81d1b682325f86.zip
ContactsCommon : Only use default requests if one is not provided
This solves the issue where the provider doesn't end up receiving the request it initially created and passed along. Change-Id: Ie39d66a87eb3a1088a4eb62e11084e1123f707f5 (cherry picked from commit ce096acee71b168f630a684d61294fb733472bd1)
-rw-r--r--src/com/android/contacts/common/ContactPhotoManager.java60
1 files changed, 39 insertions, 21 deletions
diff --git a/src/com/android/contacts/common/ContactPhotoManager.java b/src/com/android/contacts/common/ContactPhotoManager.java
index c7bee4a9..c260eea7 100644
--- a/src/com/android/contacts/common/ContactPhotoManager.java
+++ b/src/com/android/contacts/common/ContactPhotoManager.java
@@ -858,7 +858,7 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
} else {
if (DEBUG) Log.d(TAG, "loadPhoto request: " + photoId);
loadPhotoByIdOrUri(view, Request.createFromThumbnailId(photoId, darkTheme, isCircular,
- defaultProvider));
+ defaultProvider, defaultImageRequest));
}
}
@@ -878,7 +878,7 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
darkTheme, isCircular, defaultProvider);
} else {
loadPhotoByIdOrUri(view, Request.createFromUri(photoUri, requestedExtent,
- darkTheme, isCircular, defaultProvider));
+ darkTheme, isCircular, defaultProvider, defaultImageRequest));
}
}
}
@@ -1690,32 +1690,47 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
// params for bitmap requests
private boolean mIsBitmapOnly;
private PhotoFetcherCallback mCallback;
-
+ private DefaultImageRequest mDefaultImageRequest;
private Request(long id, Uri uri, int requestedExtent, boolean darkTheme,
- boolean isCircular, DefaultImageProvider defaultProvider) {
+ boolean isCircular, DefaultImageProvider defaultProvider, DefaultImageRequest defaultImageRequest) {
mId = id;
mUri = uri;
mDarkTheme = darkTheme;
mIsCircular = isCircular;
mRequestedExtent = requestedExtent;
mDefaultProvider = defaultProvider;
+ mDefaultImageRequest = defaultImageRequest;
}
public static Request createFromThumbnailId(long id, boolean darkTheme, boolean isCircular,
- DefaultImageProvider defaultProvider) {
- return new Request(id, null /* no URI */, -1, darkTheme, isCircular, defaultProvider);
+ DefaultImageProvider defaultProvider, DefaultImageRequest defaultImageRequest) {
+ return new Request(id, null /* no URI */, -1, darkTheme, isCircular, defaultProvider,
+ defaultImageRequest);
}
public static Request createFromUri(Uri uri, int requestedExtent, boolean darkTheme,
boolean isCircular, DefaultImageProvider defaultProvider) {
+ return createFromUri(uri, requestedExtent, darkTheme, isCircular,
+ defaultProvider, null);
+ }
+
+ public static Request createFromUri(Uri uri, int requestedExtent, boolean darkTheme,
+ boolean isCircular, DefaultImageProvider defaultProvider,
+ DefaultImageRequest defaultImageRequest) {
return new Request(0 /* no ID */, uri, requestedExtent, darkTheme, isCircular,
- defaultProvider);
+ defaultProvider, defaultImageRequest);
+ }
+
+ public static Request createBitmapOnly(Uri uri, int requestedExtent,
+ PhotoFetcherCallback cb) {
+ return createBitmapOnly(uri, requestedExtent, cb, null);
}
public static Request createBitmapOnly(Uri uri, int requestedExtent,
- PhotoFetcherCallback cb) {
- Request request = new Request(0, uri, requestedExtent, false, false, null);
+ PhotoFetcherCallback cb, DefaultImageRequest defaultImageRequest) {
+ Request request = new Request(0, uri, requestedExtent, false, false, null,
+ defaultImageRequest);
request.setBitmapOnly();
request.mCallback = cb;
@@ -1781,25 +1796,28 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
}
/**
- * Applies the default image to the current view. If the request is URI-based, looks for
- * the contact type encoded fragment to determine if this is a request for a business photo,
- * in which case we will load the default business photo.
+ * Applies the default image to the current view. The original {@link DefaultImageRequest},
+ * if present, will be passed along to the {@link DefaultImageProvider}. Otherwise, a
+ * default {@link DefaultImageRequest} is used based on the uri type.
*
* @param view The current image view to apply the image to.
* @param isCircular Whether the image is circular or not.
*/
public void applyDefaultImage(ImageView view, boolean isCircular) {
- final DefaultImageRequest request;
+ DefaultImageRequest request = mDefaultImageRequest;
- if (isCircular) {
- request = ContactPhotoManager.isBusinessContactUri(mUri)
- ? DefaultImageRequest.EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST
- : DefaultImageRequest.EMPTY_CIRCULAR_DEFAULT_IMAGE_REQUEST;
- } else {
- request = ContactPhotoManager.isBusinessContactUri(mUri)
- ? DefaultImageRequest.EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST
- : DefaultImageRequest.EMPTY_DEFAULT_IMAGE_REQUEST;
+ if (request == null) {
+ if (isCircular) {
+ request = ContactPhotoManager.isBusinessContactUri(mUri)
+ ? DefaultImageRequest.EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST
+ : DefaultImageRequest.EMPTY_CIRCULAR_DEFAULT_IMAGE_REQUEST;
+ } else {
+ request = ContactPhotoManager.isBusinessContactUri(mUri)
+ ? DefaultImageRequest.EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST
+ : DefaultImageRequest.EMPTY_DEFAULT_IMAGE_REQUEST;
+ }
}
+
mDefaultProvider.applyDefaultImage(view, null, mRequestedExtent, mDarkTheme, request);
}
}