11package org.wordpress.aztec.glideloader
22
33import android.content.Context
4+ import android.graphics.Bitmap
5+ import android.graphics.drawable.BitmapDrawable
46import android.graphics.drawable.Drawable
5-
7+ import android.util.DisplayMetrics
68import com.bumptech.glide.Glide
7- import com.bumptech.glide.load.resource.drawable.GlideDrawable
89import com.bumptech.glide.request.Request
910import com.bumptech.glide.request.animation.GlideAnimation
1011import com.bumptech.glide.request.target.SizeReadyCallback
1112import com.bumptech.glide.request.target.Target
12-
1313import org.wordpress.aztec.Html
1414
1515
1616class GlideImageLoader (private val context : Context ) : Html.ImageGetter {
1717
1818 override fun loadImage (source : String , callbacks : Html .ImageGetter .Callbacks , maxWidth : Int ) {
19- Glide .with (context).load(source).fitCenter().into(object : Target <GlideDrawable > {
19+ Glide .with (context).load(source).asBitmap(). fitCenter().into(object : Target <Bitmap > {
2020 override fun onLoadStarted (placeholder : Drawable ? ) {
2121 callbacks.onImageLoading(placeholder)
2222 }
@@ -25,8 +25,11 @@ class GlideImageLoader(private val context: Context) : Html.ImageGetter {
2525 callbacks.onImageFailed()
2626 }
2727
28- override fun onResourceReady (resource : GlideDrawable ? , glideAnimation : GlideAnimation <in GlideDrawable >? ) {
29- callbacks.onImageLoaded(resource)
28+ override fun onResourceReady (resource : Bitmap ? , glideAnimation : GlideAnimation <in Bitmap >? ) {
29+ // By default, BitmapFactory.decodeFile sets the bitmap's density to the device default so, we need
30+ // to correctly set the input density to 160 ourselves.
31+ resource?.density = DisplayMetrics .DENSITY_DEFAULT
32+ callbacks.onImageLoaded(BitmapDrawable (context.resources, resource))
3033 }
3134
3235 override fun onLoadCleared (placeholder : Drawable ? ) {}
0 commit comments