@SuppressWarnings("unchecked") @Nullable static Resource<Drawable> newInstance(@Nullable Drawable drawable) { return drawable != null ? new NonOwnedDrawableResource(drawable) : null; }
@Nullable @Override public Resource<Drawable> decode(@NonNull Drawable source, int width, int height, @NonNull Options options) { return NonOwnedDrawableResource.newInstance(source); } }
@Nullable @Override public Resource<Drawable> decode(@NonNull Uri source, int width, int height, @NonNull Options options) { String packageName = source.getAuthority(); Context targetContext = findContextForPackage(source, packageName); @DrawableRes int resId = findResourceIdFromUri(targetContext, source); // We can't get a theme from another application. Drawable drawable = DrawableDecoderCompat.getDrawable(context, targetContext, resId); return NonOwnedDrawableResource.newInstance(drawable); }