diff options
Diffstat (limited to 'java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java')
-rw-r--r-- | java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java b/java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java index edeeb78d6..cf42606a6 100644 --- a/java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java +++ b/java/com/android/dialer/contactphoto/ContactPhotoManagerImpl.java @@ -414,20 +414,32 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback { // No photo is needed defaultProvider.applyDefaultImage(view, requestedExtent, darkTheme, defaultImageRequest); pendingRequests.remove(view); + return; + } + if (isDrawableUri(photoUri)) { + view.setImageURI(photoUri); + pendingRequests.remove(view); + return; + } + if (DEBUG) { + LogUtil.d("ContactPhotoManagerImpl.loadPhoto", "loadPhoto request: " + photoUri); + } + + if (isDefaultImageUri(photoUri)) { + createAndApplyDefaultImageForUri( + view, photoUri, requestedExtent, darkTheme, isCircular, defaultProvider); } else { - if (DEBUG) { - LogUtil.d("ContactPhotoManagerImpl.loadPhoto", "loadPhoto request: " + photoUri); - } - if (isDefaultImageUri(photoUri)) { - createAndApplyDefaultImageForUri( - view, photoUri, requestedExtent, darkTheme, isCircular, defaultProvider); - } else { - loadPhotoByIdOrUri( - view, - Request.createFromUri( - photoUri, requestedExtent, darkTheme, isCircular, defaultProvider)); - } + loadPhotoByIdOrUri( + view, + Request.createFromUri(photoUri, requestedExtent, darkTheme, isCircular, defaultProvider)); + } + } + + private static boolean isDrawableUri(Uri uri) { + if (!ContentResolver.SCHEME_ANDROID_RESOURCE.equals(uri.getScheme())) { + return false; } + return uri.getPathSegments().get(0).equals("drawable"); } private void createAndApplyDefaultImageForUri( |