[android] Fix view recycling issue of image previews

This commit is contained in:
Torsten Grote
2019-05-01 11:58:45 -03:00
parent 9d9bc4ca84
commit cd3174a643

View File

@@ -18,6 +18,7 @@ import org.briarproject.briar.R;
import org.briarproject.briar.android.conversation.glide.GlideApp; import org.briarproject.briar.android.conversation.glide.GlideApp;
import static android.view.View.INVISIBLE; import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import static com.bumptech.glide.load.engine.DiskCacheStrategy.NONE; import static com.bumptech.glide.load.engine.DiskCacheStrategy.NONE;
import static com.bumptech.glide.load.resource.bitmap.DownsampleStrategy.FIT_CENTER; import static com.bumptech.glide.load.resource.bitmap.DownsampleStrategy.FIT_CENTER;
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade; import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
@@ -38,7 +39,11 @@ class ImagePreviewViewHolder extends ViewHolder {
} }
void bind(ImagePreviewItem item) { void bind(ImagePreviewItem item) {
if (item.getItem() == null) return; // shows progress bar if (item.getItem() == null) {
progressBar.setVisibility(VISIBLE);
GlideApp.with(imageView)
.clear(imageView);
} else {
GlideApp.with(imageView) GlideApp.with(imageView)
.load(item.getItem()) .load(item.getItem())
.diskCacheStrategy(NONE) .diskCacheStrategy(NONE)
@@ -57,12 +62,14 @@ class ImagePreviewViewHolder extends ViewHolder {
@Override @Override
public boolean onResourceReady(Drawable resource, public boolean onResourceReady(Drawable resource,
Object model, Target<Drawable> target, Object model, Target<Drawable> target,
DataSource dataSource, boolean isFirstResource) { DataSource dataSource,
boolean isFirstResource) {
progressBar.setVisibility(INVISIBLE); progressBar.setVisibility(INVISIBLE);
return false; return false;
} }
}) })
.into(imageView); .into(imageView);
} }
}
} }