diff --git a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoader.java b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoader.java index 82a4cdc..441605a 100755 --- a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoader.java +++ b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoader.java @@ -326,9 +326,9 @@ public void loadImage(Drawable dummyDrawable, RemoteImageLoaderHandler handler) if (imageCache != null && imageCache.containsKeyInMemory(imageUrl)) { // do not go through message passing, handle directly instead imageLoaderHandler.handleImageLoaded(imageCache.getBitmap(imageUrl), null); - } else { - executor.execute(new RemoteImageLoaderJob(imageUrl, imageLoaderHandler, imageCache, - numRetries, defaultBufferSize)); + } else { + executor.execute(new RemoteImageLoaderJob(imageUrl, imageLoaderHandler, imageCache, numRetries, defaultBufferSize, + view)); } } } diff --git a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderHandler.java b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderHandler.java index cfc8bee..5599230 100755 --- a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderHandler.java +++ b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderHandler.java @@ -40,6 +40,11 @@ public RemoteImageLoaderHandler(ImageView imageView, String imageUrl, Drawable e init(imageView, imageUrl, errorDrawable); } + public RemoteImageLoaderHandler(RemoteImageLoaderImageViewAdapter remoteImageLoaderImageViewAdapter) { + this.imageView = remoteImageLoaderImageViewAdapter.getView(); + setRemoteImageLoaderViewAdapter(remoteImageLoaderImageViewAdapter); + } + public RemoteImageLoaderHandler(Looper looper, ImageView imageView, String imageUrl, Drawable errorDrawable) { super(looper); diff --git a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderJob.java b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderJob.java index 733993c..a1022aa 100644 --- a/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderJob.java +++ b/ignition-support/ignition-support-lib/src/main/java/com/github/ignition/support/images/remote/RemoteImageLoaderJob.java @@ -49,6 +49,10 @@ public void run() { } if (bitmap == null) { + // If the view is reused do not download the bitmap + if (reusableView != null & !imageUrl.equals(reusableView.getTag())) { + return; + } bitmap = downloadImage(); }