diff --git a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt index b7106f7ce1a3..4a2ba404c138 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt @@ -23,6 +23,8 @@ import android.widget.TextView import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity +import com.bumptech.glide.Glide +import com.bumptech.glide.RequestBuilder import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.load.resource.bitmap.CenterCrop @@ -38,8 +40,6 @@ import com.bumptech.glide.request.transition.Transition import com.bumptech.glide.signature.ObjectKey import kotlinx.coroutines.CoroutineScope import org.wordpress.android.WordPress -import org.wordpress.android.modules.GlideApp -import org.wordpress.android.modules.GlideRequest import org.wordpress.android.networking.MShot import org.wordpress.android.ui.media.VideoLoader import org.wordpress.android.util.AppLog @@ -107,7 +107,7 @@ class ImageManager @Inject constructor( fun load(imageView: ImageView, imageType: ImageType, imgUrl: String = "", scaleType: ScaleType = CENTER) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(imgUrl) .addFallback(imageType) .addPlaceholder(imageType) @@ -137,7 +137,7 @@ class ImageManager @Inject constructor( videoUrl, loadAction = { if (!context.isAvailable()) return@runIfMediaNotTooBig - GlideApp.with(context) + Glide.with(context) .load(videoUrl) .addFallback(imageType) .addPlaceholder(imageType) @@ -152,7 +152,7 @@ class ImageManager @Inject constructor( val fallbackDrawable = placeholderManager.getErrorResource(imageType)?.let { ColorDrawable(ContextCompat.getColor(context, it)) } - GlideApp.with(context) + Glide.with(context) .load(fallbackDrawable) .addPlaceholder(imageType) .addFallback(imageType) @@ -178,7 +178,7 @@ class ImageManager @Inject constructor( height: Int? = null ) { if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .asBitmap() .load(imgUrl) .addFallback(imageType) @@ -202,7 +202,7 @@ class ImageManager @Inject constructor( ) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(imgUrl) .addFallback(imageType) .addPlaceholder(imageType) @@ -236,7 +236,7 @@ class ImageManager @Inject constructor( return } - GlideApp.with(context) + Glide.with(context) .load(imageData) .addFallback(imageType) .addPlaceholder(imageType) @@ -262,7 +262,7 @@ class ImageManager @Inject constructor( val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(imgUrl) .transform(CenterCrop(), RoundedCorners(cornerRadius)) .addFallback(imageType) @@ -290,7 +290,7 @@ class ImageManager @Inject constructor( ) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(Uri.parse(imgUrl)) .addFallback(imageType) .addPlaceholder(imageType) @@ -310,7 +310,7 @@ class ImageManager @Inject constructor( fun preload(context: Context, design: MShot) { if (!context.isAvailable()) return try { - GlideApp.with(context) + Glide.with(context) .downloadOnly() .load(design) .submit() @@ -330,7 +330,7 @@ class ImageManager @Inject constructor( fun loadWithResultListener(view: ImageView, design: MShot, requestListener: RequestListener) { val context = view.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(design) .addFallback(ImageType.THEME) .addPlaceholder(ImageType.THEME) @@ -360,7 +360,7 @@ class ImageManager @Inject constructor( ) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(imgUri) .addFallback(imageType) .addPlaceholder(imageType) @@ -384,7 +384,7 @@ class ImageManager @Inject constructor( ) { val context = WordPress.getContext() if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .asFile() .load(imgUri) .attachRequestListener(requestListener) @@ -404,7 +404,7 @@ class ImageManager @Inject constructor( fun load(imageView: ImageView, bitmap: Bitmap, scaleType: ScaleType = CENTER) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(bitmap) .applyScaleType(scaleType) .into(imageView) @@ -418,7 +418,7 @@ class ImageManager @Inject constructor( fun load(imageView: ImageView, drawable: Drawable, scaleType: ScaleType = CENTER) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(drawable) .applyScaleType(scaleType) .into(imageView) @@ -432,7 +432,7 @@ class ImageManager @Inject constructor( fun load(imageView: ImageView, @DrawableRes resourceId: Int, scaleType: ScaleType = CENTER) { val context = imageView.context if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(ContextCompat.getDrawable(context, resourceId)) .applyScaleType(scaleType) .into(imageView) @@ -450,7 +450,7 @@ class ImageManager @Inject constructor( fun loadIntoCustomTarget(viewTarget: ViewTarget, imageType: ImageType, imgUrl: String) { val context = WordPress.getContext() if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .load(imgUrl) .addFallback(imageType) .addPlaceholder(imageType) @@ -472,7 +472,7 @@ class ImageManager @Inject constructor( scaleType: ScaleType = CENTER ) { if (!context.isAvailable()) return - GlideApp.with(context) + Glide.with(context) .asBitmap() .load(imgUrl) .applyScaleType(scaleType) @@ -488,7 +488,7 @@ class ImageManager @Inject constructor( if (context is Activity && (context.isFinishing || context.isDestroyed)) { return } - GlideApp.with(imageView.context).clear(imageView) + Glide.with(imageView.context).clear(imageView) } /** @@ -497,12 +497,12 @@ class ImageManager @Inject constructor( */ @Suppress("DEPRECATION") fun cancelRequest(context: Context, target: BaseTarget?) { - GlideApp.with(context).clear(target) + Glide.with(context).clear(target) } - private fun GlideRequest.applyScaleType( + private fun RequestBuilder.applyScaleType( scaleType: ScaleType - ): GlideRequest { + ): RequestBuilder { return when (scaleType) { ScaleType.CENTER_CROP -> this.centerCrop() ScaleType.CENTER_INSIDE -> this.centerInside() @@ -521,7 +521,7 @@ class ImageManager @Inject constructor( } } - private fun GlideRequest.applySize(width: Int?, height: Int?): GlideRequest { + private fun RequestBuilder.applySize(width: Int?, height: Int?): RequestBuilder { return if (width != null && height != null) { this.override(width, height) } else { @@ -529,7 +529,7 @@ class ImageManager @Inject constructor( } } - private fun GlideRequest.addPlaceholder(imageType: ImageType): GlideRequest { + private fun RequestBuilder.addPlaceholder(imageType: ImageType): RequestBuilder { val placeholderImageRes = placeholderManager.getPlaceholderResource(imageType) return if (placeholderImageRes == null) { this @@ -538,7 +538,7 @@ class ImageManager @Inject constructor( } } - private fun GlideRequest.addFallback(imageType: ImageType): GlideRequest { + private fun RequestBuilder.addFallback(imageType: ImageType): RequestBuilder { val errorImageRes = placeholderManager.getErrorResource(imageType) return if (errorImageRes == null) { this @@ -550,7 +550,7 @@ class ImageManager @Inject constructor( /** * Changing the signature invalidates cache. */ - private fun GlideRequest.addSignature(signature: Int?): GlideRequest { + private fun RequestBuilder.addSignature(signature: Int?): RequestBuilder { return if (signature == null) { this } else { @@ -558,15 +558,15 @@ class ImageManager @Inject constructor( } } - private fun GlideRequest.addThumbnail( + private fun RequestBuilder.addThumbnail( context: Context, thumbnailUrl: String?, listener: RequestListener - ): GlideRequest { + ): RequestBuilder { return if (TextUtils.isEmpty(thumbnailUrl)) { this } else { - val thumbnailRequest = GlideApp + val thumbnailRequest = Glide .with(context) .load(thumbnailUrl) .downsample(DownsampleStrategy.AT_MOST) @@ -575,9 +575,9 @@ class ImageManager @Inject constructor( } } - private fun GlideRequest.attachRequestListener( + private fun RequestBuilder.attachRequestListener( requestListener: RequestListener? - ): GlideRequest { + ): RequestBuilder { return if (requestListener == null) { this } else { @@ -585,7 +585,7 @@ class ImageManager @Inject constructor( override fun onLoadFailed( e: GlideException?, model: Any?, - target: Target?, + target: Target, isFirstResource: Boolean ): Boolean { requestListener.onLoadFailed(e, model) @@ -593,22 +593,16 @@ class ImageManager @Inject constructor( } override fun onResourceReady( - resource: T?, - model: Any?, + resource: T, + model: Any, target: Target?, - dataSource: DataSource?, + dataSource: DataSource, isFirstResource: Boolean ): Boolean { - if (resource != null) { - requestListener.onResourceReady(resource, model) - } else { - // according to the Glide's JavaDoc, this shouldn't happen - AppLog.e(AppLog.T.UTILS, "Resource in ImageManager.onResourceReady is null.") - requestListener.onLoadFailed(null, model) - } + requestListener.onResourceReady(resource, model) return false } - }) + }) } } diff --git a/build.gradle b/build.gradle index 1d393ace05cd..1c8b4872bc6c 100644 --- a/build.gradle +++ b/build.gradle @@ -68,7 +68,7 @@ ext { facebookShimmerVersion = '0.5.0' firebaseBomVersion = '32.1.0' firebaseIidVersion = '21.1.0' - glideVersion = '4.15.1' + glideVersion = '4.16.0' googleAutoServiceVersion = '1.0.1' googleExoPlayerVersion = '2.13.3' googleFlexboxlayoutVersion = '3.0.0'