| 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());
|
| }
|
| });
|
| }
|
|
|