Glide - call method after fallback or error when trying load photo.
Hi!
Is there any a way to check if Glide
load photo from link or use fallback
/error
when link isn't valid or photo isn't available?
I mean, I want to call a method (load other photo) when Glide doesn't load photo.
This is my Glide e.g.:
Glide
.with(mActivity)
.load(news.getPagemap().getCseThumbnail().get(0).getSrc())
.fallback(R.drawable.bg_gradient)
.error(R.drawable.bg_gradient)
.centerCrop()
.crossFade()
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(holder.photo);
I tried to compare ConstantValues
- holder.photo.getDrawable().getConstantState().equals(mActivity.getResources().getDrawable(R.drawable.bg_gradient).getConstantState())
but got NullPointerException
.
This helps me:
private void loadPicture(final ViewHolder holder, String photoUrl, final Boolean shouldLoadAgain) {
holder.progressBar.setVisibility(View.VISIBLE);
Glide
.with(mActivity)
.load(photoUrl)
.fallback(R.drawable.bg_gradient)
.error(R.drawable.bg_gradient)
.centerCrop()
.crossFade()
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
holder.progressBar.setVisibility(View.GONE);
if (shouldLoadAgain)
loadPicture(holder, mPhotoUrl, false);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
holder.progressBar.setVisibility(View.GONE);
return false;
}
})
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(holder.photo);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With