Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java |
index b83ab1dfb013cf53a32f5caf8ef2aadc21bdf81d..71b7d4b494b5467d5516b4dd1e75fa1cd1ebb60c 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java |
@@ -93,11 +93,12 @@ public int getItemViewType(int position) { |
} |
@Override |
- public void onBindViewHolder(NewTabPageViewHolder holder, int position) { |
+ public void onBindViewHolder( |
+ NewTabPageViewHolder holder, int position, List<Object> payloads) { |
checkIndex(position); |
assert holder instanceof SnippetArticleViewHolder; |
((SnippetArticleViewHolder) holder) |
- .onBindViewHolder(getSuggestionAt(position), mCategoryInfo); |
+ .onBindViewHolder(getSuggestionAt(position), mCategoryInfo, payloads); |
} |
@Override |
@@ -155,6 +156,15 @@ public void dismissItem(int position, Callback<String> itemRemovedCallback) { |
suggestionsSource.dismissSuggestion(suggestion); |
itemRemovedCallback.onResult(suggestion.mTitle); |
} |
+ |
+ public void updateSuggestionOfflineId(SnippetArticle article, Long newId) { |
+ Long oldId = article.getOfflinePageOfflineId(); |
+ article.setOfflinePageOfflineId(newId); |
+ |
+ if ((oldId == null) == (newId == null)) return; |
+ notifyItemChanged(mSuggestions.indexOf(article), |
+ SnippetArticleViewHolder.PARTIAL_UPDATE_OFFLINE_ID); |
+ } |
} |
private void setupOfflinePageBridgeObserver(NewTabPageManager manager) { |
@@ -286,11 +296,8 @@ private void updateSnippetOfflineAvailability(final SnippetArticle article) { |
@Override |
public void onResult(OfflinePageItem item) { |
if (mIsNtpDestroyed) return; |
- if (item == null) { |
- article.setOfflinePageOfflineId(null); |
- return; |
- } |
- article.setOfflinePageOfflineId(item.getOfflineId()); |
+ mSuggestionsList.updateSuggestionOfflineId( |
+ article, item == null ? null : item.getOfflineId()); |
} |
}); |
} |