diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt index 034f8d7f50..08ce9336b9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt @@ -4,7 +4,6 @@ import android.view.View import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import eu.davidea.flexibleadapter.FlexibleAdapter -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.widget.StateImageViewTarget import kotlinx.android.synthetic.main.item_catalogue_grid.view.* @@ -44,7 +43,6 @@ class CatalogueGridHolder(private val view: View, private val adapter: FlexibleA .diskCacheStrategy(DiskCacheStrategy.SOURCE) .centerCrop() .skipMemoryCache(true) - .error(R.drawable.ic_broken_image_grey_24dp) .placeholder(android.R.color.transparent) .into(StateImageViewTarget(view.thumbnail, view.progress)) diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt index 8792b88cc8..af12756dd5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt @@ -1,25 +1,30 @@ package eu.kanade.tachiyomi.widget import android.graphics.drawable.Drawable +import android.support.graphics.drawable.VectorDrawableCompat +import android.view.View 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.R +import eu.kanade.tachiyomi.util.getResourceColor 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. + * A glide target to display an image with an optional view to show while loading and a configurable + * 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 progress an optional view to show when the image is loading. + * @param errorDrawableRes the error drawable resource to show. * @param errorScaleType the scale type for the error drawable, [ScaleType.CENTER] by default. */ class StateImageViewTarget(view: ImageView, - val progress: ProgressBar? = null, + val progress: View? = null, + val errorDrawableRes: Int = R.drawable.ic_broken_image_grey_24dp, val errorScaleType: ScaleType = ScaleType.CENTER) : GlideDrawableImageViewTarget(view) { @@ -33,7 +38,10 @@ class StateImageViewTarget(view: ImageView, override fun onLoadFailed(e: Exception?, errorDrawable: Drawable?) { progress?.gone() view.scaleType = errorScaleType - super.onLoadFailed(e, errorDrawable) + + val vector = VectorDrawableCompat.create(view.context.resources, errorDrawableRes, null) + vector?.setTint(view.context.getResourceColor(android.R.attr.textColorSecondary)) + view.setImageDrawable(vector) } override fun onLoadCleared(placeholder: Drawable?) {