Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java |
index d76bd1c590f129ab676224a86e9a04d31f852eb1..985090986baa848b7aaf4e2b42cacdd571487989 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser.ntp.snippets; |
+import android.os.AsyncTask; |
import android.text.format.DateUtils; |
import android.view.LayoutInflater; |
import android.view.View; |
@@ -30,6 +31,7 @@ |
public ImageView mThumbnailView; |
public String mUrl; |
public int mPosition; |
+ private ThumbnailFetchingTask mThumbnailFetchingTask; |
/** |
* Creates the CardView object to display snippets information |
@@ -90,7 +92,12 @@ public void onBindViewHolder(NewTabPageListItem article) { |
mUrl = item.mUrl; |
mPosition = item.mPosition; |
- item.setThumbnailOnView(mThumbnailView); |
+ // If this view has a pending task, it will display the stale thumbnail when it finishes, |
+ // so we need to cancel it. |
+ if (mThumbnailFetchingTask != null) mThumbnailFetchingTask.cancel(true); |
+ |
+ mThumbnailFetchingTask = new ThumbnailFetchingTask(item, mThumbnailView); |
+ mThumbnailFetchingTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
} |
@Override |