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 9a4eaa2ab967de44516cbf5a09095fe4aad6c5a5..4158656bd39c8b7b877ffdb8c3befa6e7c9e24ca 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 |
@@ -9,6 +9,7 @@ import org.chromium.chrome.browser.ntp.snippets.CategoryInt; |
import org.chromium.chrome.browser.ntp.snippets.CategoryStatus.CategoryStatusEnum; |
import org.chromium.chrome.browser.ntp.snippets.SectionHeader; |
import org.chromium.chrome.browser.ntp.snippets.SnippetArticle; |
+import org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder; |
import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
import java.util.ArrayList; |
@@ -21,6 +22,7 @@ public class SuggestionsSection extends InnerNode { |
private final List<TreeNode> mChildren = new ArrayList<>(); |
private final List<SnippetArticle> mSuggestions = new ArrayList<>(); |
private final SectionHeader mHeader; |
+ private final TreeNode mSuggestionsList = new SuggestionsList(this, mSuggestions); |
private final StatusItem mStatus; |
private final ProgressItem mProgressIndicator = new ProgressItem(); |
private final ActionItem mMoreButton; |
@@ -35,6 +37,42 @@ public class SuggestionsSection extends InnerNode { |
resetChildren(); |
} |
+ private static class SuggestionsList extends ChildNode { |
+ private final List<SnippetArticle> mSuggestions; |
dgn
2016/10/21 17:13:30
I find it a bit weird that we have another referen
Bernhard Bauer
2016/10/22 16:43:47
Yeah, I considered that as well. I'm not sure what
|
+ |
+ public SuggestionsList(NodeParent parent, List<SnippetArticle> suggestions) { |
+ super(parent); |
+ mSuggestions = suggestions; |
+ } |
+ |
+ @Override |
+ public int getItemCount() { |
+ return mSuggestions.size(); |
+ } |
+ |
+ @Override |
+ @ItemViewType |
+ public int getItemViewType(int position) { |
+ return ItemViewType.SNIPPET; |
+ } |
+ |
+ @Override |
+ public void onBindViewHolder(NewTabPageViewHolder holder, int position) { |
+ assert holder instanceof SnippetArticleViewHolder; |
+ ((SnippetArticleViewHolder) holder).onBindViewHolder(getSuggestionAt(position)); |
+ } |
+ |
+ @Override |
+ public SnippetArticle getSuggestionAt(int position) { |
+ return mSuggestions.get(position); |
+ } |
+ |
+ @Override |
+ public int getDismissSiblingPosDelta(int position) { |
+ return 0; |
+ } |
+ } |
+ |
@Override |
protected List<TreeNode> getChildren() { |
return mChildren; |
@@ -43,7 +81,7 @@ public class SuggestionsSection extends InnerNode { |
private void resetChildren() { |
mChildren.clear(); |
mChildren.add(mHeader); |
- mChildren.addAll(mSuggestions); |
+ mChildren.add(mSuggestionsList); |
if (mSuggestions.isEmpty()) mChildren.add(mStatus); |
if (mCategoryInfo.hasMoreButton() || mSuggestions.isEmpty()) mChildren.add(mMoreButton); |