@@ -38,6 +38,7 @@ import com.facebook.fresco.vito.renderer.DrawableImageDataModel
38
38
import com.facebook.fresco.vito.renderer.ImageDataModel
39
39
import com.facebook.fresco.vito.source.BitmapImageSource
40
40
import com.facebook.fresco.vito.source.DrawableImageSource
41
+ import com.facebook.fresco.vito.source.DrawableResImageSource
41
42
import com.facebook.imagepipeline.image.CloseableBitmap
42
43
import com.facebook.imagepipeline.image.CloseableImage
43
44
import com.facebook.imagepipeline.image.CloseableStaticBitmap
@@ -161,22 +162,12 @@ class KFrescoController(
161
162
}
162
163
// Direct Drawable available
163
164
is DrawableImageSource -> {
164
- val extras = drawable.obtainExtras(null , null )
165
- drawable.actualImageLayer.setActualImageDrawable(
166
- imageRequest.imageOptions, source.drawable)
167
- drawable.listenerManager.onFinalImageSet(
168
- imageId,
169
- imageRequest,
170
- ImageOrigin .LOCAL ,
171
- ImageInfoImpl (
172
- source.drawable.intrinsicWidth,
173
- source.drawable.intrinsicHeight,
174
- 0 ,
175
- ImmutableQualityInfo .FULL_QUALITY ,
176
- extras.imageExtras ? : emptyMap()),
177
- extras,
178
- drawable.actualImageDrawable)
179
- debugOverlayHandler?.update(drawable)
165
+ setDrawableAsActualImage(drawable, source.drawable, imageRequest, imageId)
166
+ return true
167
+ }
168
+ is DrawableResImageSource -> {
169
+ setDrawableAsActualImage(
170
+ drawable, imageRequest.resources.getDrawable(source.resId), imageRequest, imageId)
180
171
return true
181
172
}
182
173
}
@@ -223,6 +214,29 @@ class KFrescoController(
223
214
}
224
215
}
225
216
217
+ private fun setDrawableAsActualImage (
218
+ drawable : KFrescoVitoDrawable ,
219
+ actualImageDrawable : Drawable ,
220
+ imageRequest : VitoImageRequest ,
221
+ imageId : Long
222
+ ) {
223
+ val extras = drawable.obtainExtras(null , null )
224
+ drawable.actualImageLayer.setActualImageDrawable(imageRequest.imageOptions, actualImageDrawable)
225
+ drawable.listenerManager.onFinalImageSet(
226
+ imageId,
227
+ imageRequest,
228
+ ImageOrigin .LOCAL ,
229
+ ImageInfoImpl (
230
+ actualImageDrawable.intrinsicWidth,
231
+ actualImageDrawable.intrinsicHeight,
232
+ 0 ,
233
+ ImmutableQualityInfo .FULL_QUALITY ,
234
+ extras.imageExtras ? : emptyMap()),
235
+ extras,
236
+ drawable.actualImageDrawable)
237
+ debugOverlayHandler?.update(drawable)
238
+ }
239
+
226
240
override fun releaseDelayed (drawable : FrescoDrawableInterface ) {
227
241
traceSection(" KFrescoController#releaseDelayed" ) {
228
242
if (drawable !is KFrescoVitoDrawable ) {
0 commit comments