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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java

Issue 2652953003: 📰 Simplify application of partial updates on view holders (Closed)
Patch Set: fail on unknown payload Created 3 years, 11 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/cards/NewTabPageAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
index 9ee7337dc3871e0dd7d82d847dd5e127dfac98e6..373d773877c96df8f8ce38a3d961c7f3c4a5fcb1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
@@ -19,9 +19,9 @@
import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
import org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
+import org.chromium.chrome.browser.suggestions.PartialUpdateId;
import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
-import java.util.Collections;
import java.util.List;
/**
@@ -142,12 +142,29 @@ public NewTabPageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
@Override
public void onBindViewHolder(NewTabPageViewHolder holder, int position, List<Object> payloads) {
- mRoot.onBindViewHolder(holder, position, payloads);
+ if (payloads.isEmpty()) {
+ mRoot.onBindViewHolder(holder, position);
+ return;
+ }
+
+ for (Object payload : payloads) {
+ @PartialUpdateId
+ int updateId = (int) payload;
+
+ switch (updateId) {
+ case PartialUpdateId.OFFLINE_BADGE:
+ assert holder instanceof SnippetArticleViewHolder;
+ ((SnippetArticleViewHolder) holder).refreshOfflineBadgeVisibility();
+ break;
+ default:
+ assert false; // Unknown payload
+ }
+ }
}
@Override
public void onBindViewHolder(NewTabPageViewHolder holder, final int position) {
- mRoot.onBindViewHolder(holder, position, Collections.emptyList());
+ mRoot.onBindViewHolder(holder, position);
}
@Override

Powered by Google App Engine
This is Rietveld 408576698