mirror of
https://github.com/mihonapp/mihon.git
synced 2025-10-30 13:57:57 +01:00
Show loading/error for images in catalogue grid view. Update support lib
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.widget.ImageView
|
||||
import android.widget.ImageView.ScaleType
|
||||
import android.widget.ProgressBar
|
||||
import com.bumptech.glide.load.resource.drawable.GlideDrawable
|
||||
import com.bumptech.glide.request.animation.GlideAnimation
|
||||
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget
|
||||
import eu.kanade.tachiyomi.util.gone
|
||||
import eu.kanade.tachiyomi.util.visible
|
||||
|
||||
/**
|
||||
* A glide target to display an image with an optional progress bar and a configurable scale type
|
||||
* for the error drawable.
|
||||
*
|
||||
* @param view the view where the image will be loaded
|
||||
* @param progress an optional progress bar to show when the image is loading.
|
||||
* @param errorScaleType the scale type for the error drawable, [ScaleType.CENTER] by default.
|
||||
*/
|
||||
class StateImageViewTarget(view: ImageView,
|
||||
val progress: ProgressBar? = null,
|
||||
val errorScaleType: ScaleType = ScaleType.CENTER) :
|
||||
GlideDrawableImageViewTarget(view) {
|
||||
|
||||
private val imageScaleType = view.scaleType
|
||||
|
||||
override fun onLoadStarted(placeholder: Drawable?) {
|
||||
progress?.visible()
|
||||
super.onLoadStarted(placeholder)
|
||||
}
|
||||
|
||||
override fun onLoadFailed(e: Exception?, errorDrawable: Drawable?) {
|
||||
progress?.gone()
|
||||
view.scaleType = errorScaleType
|
||||
super.onLoadFailed(e, errorDrawable)
|
||||
}
|
||||
|
||||
override fun onLoadCleared(placeholder: Drawable?) {
|
||||
progress?.gone()
|
||||
super.onLoadCleared(placeholder)
|
||||
}
|
||||
|
||||
override fun onResourceReady(resource: GlideDrawable?, animation: GlideAnimation<in GlideDrawable>?) {
|
||||
progress?.gone()
|
||||
view.scaleType = imageScaleType
|
||||
super.onResourceReady(resource, animation)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user