diff --git a/picasso/src/main/java/com/squareup/picasso3/Picasso.java b/picasso/src/main/java/com/squareup/picasso3/Picasso.java index 156ba81deb..ae8aa2bc65 100644 --- a/picasso/src/main/java/com/squareup/picasso3/Picasso.java +++ b/picasso/src/main/java/com/squareup/picasso3/Picasso.java @@ -15,7 +15,9 @@ */ package com.squareup.picasso3; +import android.content.ContentResolver; import android.content.Context; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; import android.net.Uri; @@ -574,7 +576,6 @@ void complete(BitmapHunter hunter) { return; } - Uri uri = checkNotNull(hunter.getData().uri, "uri == null"); Exception exception = hunter.getException(); RequestHandler.Result result = hunter.getResult(); @@ -591,6 +592,20 @@ void complete(BitmapHunter hunter) { } if (listener != null && exception != null) { + Request request = hunter.getData(); + Uri uri = request.uri; + if (uri == null) { + //this must be resource + Resources resources = context.getResources(); + int resourceId = request.resourceId; + uri = new Uri.Builder() + .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) + .authority(resources.getResourcePackageName(resourceId)) + .appendPath(resources.getResourceTypeName(resourceId)) + .appendPath(resources.getResourceEntryName(resourceId)) + .build(); + } + listener.onImageLoadFailed(this, uri, exception); } }