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..e90dae1ebee7dff1936649d4db9ad99585036d5b 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); |
private final StatusItem mStatus; |
private final ProgressItem mProgressIndicator = new ProgressItem(); |
private final ActionItem mMoreButton; |
@@ -35,6 +37,39 @@ public class SuggestionsSection extends InnerNode { |
resetChildren(); |
} |
+ private class SuggestionsList extends ChildNode { |
+ public SuggestionsList(NodeParent parent) { |
+ super(parent); |
+ } |
+ |
+ @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 +78,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); |