From eac0a95d06891a3ffdfcd99faf84c24be247ad65 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 1 May 2023 18:17:33 +0530 Subject: [PATCH] Glide: Switch from ViewTarget to CustomViewTarget ViewTarget has been deprecated Signed-off-by: Aayush Gupta --- .../main/java/com/aurora/extensions/Glide.kt | 62 +++++++++++++------ 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/aurora/extensions/Glide.kt b/app/src/main/java/com/aurora/extensions/Glide.kt index 18f710d7e..c8bbb08d4 100644 --- a/app/src/main/java/com/aurora/extensions/Glide.kt +++ b/app/src/main/java/com/aurora/extensions/Glide.kt @@ -29,134 +29,156 @@ import com.bumptech.glide.Glide import com.bumptech.glide.TransitionOptions import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.ViewTarget +import com.bumptech.glide.request.target.CustomViewTarget import com.bumptech.glide.request.transition.DrawableCrossFadeFactory +import com.bumptech.glide.request.transition.Transition import java.io.File fun ImageView.load( bitmap: Bitmap?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(bitmap, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(bitmap, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( byteArray: ByteArray?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(byteArray, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(byteArray, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( drawable: Drawable?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(drawable, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(drawable, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( @RawRes @DrawableRes resourceId: Int?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(resourceId, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(resourceId, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( uri: Uri?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(uri, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(uri, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( string: String?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(string, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(string, transitionOptions, requestOptions) @JvmSynthetic fun ImageView.load( file: File?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget = loadAny(file, transitionOptions, requestOptions) +): CustomViewTarget = loadAny(file, transitionOptions, requestOptions) @JvmSynthetic inline fun ImageView.load( bitmap: Bitmap?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(bitmap, requestOptions) +): CustomViewTarget = loadAny(bitmap, requestOptions) @JvmSynthetic inline fun ImageView.load( byteArray: ByteArray?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(byteArray, requestOptions) +): CustomViewTarget = loadAny(byteArray, requestOptions) @JvmSynthetic inline fun ImageView.load( drawable: Drawable?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(drawable, requestOptions) +): CustomViewTarget = loadAny(drawable, requestOptions) @JvmSynthetic inline fun ImageView.load( @RawRes @DrawableRes resourceId: Int?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(resourceId, requestOptions) +): CustomViewTarget = loadAny(resourceId, requestOptions) @JvmSynthetic inline fun ImageView.load( uri: Uri?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(uri, requestOptions) +): CustomViewTarget = loadAny(uri, requestOptions) @JvmSynthetic inline fun ImageView.load( string: String?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(string, requestOptions) +): CustomViewTarget = loadAny(string, requestOptions) @JvmSynthetic inline fun ImageView.load( file: File?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions.() -> Unit -): ViewTarget = loadAny(file, requestOptions) +): CustomViewTarget = loadAny(file, requestOptions) @JvmSynthetic fun ImageView.loadAny( data: Any?, transitionOptions: TransitionOptions<*, Drawable>? = null, requestOptions: RequestOptions? = null -): ViewTarget { +): CustomViewTarget { return Glide.with(this) + .asDrawable() .load(data) .apply { transitionOptions?.let { transition(it) } requestOptions?.let { apply(it) } } - .into(this) + .into(object : CustomViewTarget(this) { + override fun onLoadFailed(errorDrawable: Drawable?) { + } + + override fun onResourceCleared(placeholder: Drawable?) { + } + + override fun onResourceReady(resource: Drawable, transition: Transition?) { + this.view.setImageDrawable(resource) + } + }) } @JvmSynthetic inline fun ImageView.loadAny( data: Any?, requestOptions: RequestOptions.() -> Unit -): ViewTarget { +): CustomViewTarget { val factory = DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build() return Glide.with(this) + .asDrawable() .load(data) .transition(withCrossFade(factory)) .apply(RequestOptions().apply(requestOptions)) - .into(this) -} + .into(object : CustomViewTarget(this) { + override fun onLoadFailed(errorDrawable: Drawable?) { + } + + override fun onResourceCleared(placeholder: Drawable?) { + } + + override fun onResourceReady(resource: Drawable, transition: Transition?) { + this.view.setImageDrawable(resource) + } + })} @JvmSynthetic fun ImageView.clear() {