Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(633)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java

Issue 1871343006: [NTP Snippets] 📷 Add placeholders and start caching thumbnails (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move the async task out as it needs to be stopped from the view, not the snippet Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698