| 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 ebb7b2d15b1f9eaa2fb4843c2fd1e18f55548788..8b24a1a342e8dda146a08d8ba204bfbc84666bc9 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
|
| @@ -25,9 +25,6 @@
|
| import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
|
|
| -import java.util.Arrays;
|
| -import java.util.List;
|
| -
|
| /**
|
| * A class that handles merging above the fold elements and below the fold cards into an adapter
|
| * that will be used to back the NTP RecyclerView. The first element in the adapter should always be
|
| @@ -43,10 +40,6 @@
|
| private final ItemTouchCallbacks mItemTouchCallbacks = new ItemTouchCallbacks();
|
| private NewTabPageRecyclerView mRecyclerView;
|
|
|
| - /**
|
| - * List of all child nodes (which can themselves contain multiple child nodes).
|
| - */
|
| - private final List<TreeNode> mChildren;
|
| private final InnerNode mRoot;
|
|
|
| private final AboveTheFoldItem mAboveTheFold = new AboveTheFoldItem();
|
| @@ -132,23 +125,18 @@ public NewTabPageAdapter(NewTabPageManager manager, View aboveTheFoldView, UiCon
|
| mNewTabPageManager = manager;
|
| mAboveTheFoldView = aboveTheFoldView;
|
| mUiConfig = uiConfig;
|
| - mRoot = new InnerNode(this) {
|
| - @Override
|
| - protected List<TreeNode> getChildren() {
|
| - return mChildren;
|
| - }
|
| - };
|
| + mRoot = new InnerNode();
|
|
|
| - mSections = new SectionList(mRoot, mNewTabPageManager, offlinePageBridge);
|
| - mSigninPromo = new SignInPromo(mRoot, mNewTabPageManager);
|
| - mAllDismissed = new AllDismissedItem(mRoot);
|
| - mFooter = new Footer(mRoot);
|
| + mSections = new SectionList(mNewTabPageManager, offlinePageBridge);
|
| + mSigninPromo = new SignInPromo(mNewTabPageManager);
|
| + mAllDismissed = new AllDismissedItem();
|
| + mFooter = new Footer();
|
|
|
| - mChildren = Arrays.asList(
|
| + mRoot.addChildren(
|
| mAboveTheFold, mSections, mSigninPromo, mAllDismissed, mFooter, mBottomSpacer);
|
| - mRoot.init();
|
|
|
| updateAllDismissedVisibility();
|
| + mRoot.setParent(this);
|
| }
|
|
|
| /** Returns callbacks to configure the interactions with the RecyclerView's items. */
|
| @@ -251,7 +239,7 @@ public void onItemRangeChanged(TreeNode child, int itemPosition, int itemCount)
|
| public void onItemRangeInserted(TreeNode child, int itemPosition, int itemCount) {
|
| assert child == mRoot;
|
| notifyItemRangeInserted(itemPosition, itemCount);
|
| - notifyItemChanged(getItemCount() - 1); // Refresh the spacer too.
|
| + mBottomSpacer.refresh();
|
|
|
| updateAllDismissedVisibility();
|
| }
|
| @@ -260,7 +248,7 @@ public void onItemRangeInserted(TreeNode child, int itemPosition, int itemCount)
|
| public void onItemRangeRemoved(TreeNode child, int itemPosition, int itemCount) {
|
| assert child == mRoot;
|
| notifyItemRangeRemoved(itemPosition, itemCount);
|
| - notifyItemChanged(getItemCount() - 1); // Refresh the spacer too.
|
| + mBottomSpacer.refresh();
|
|
|
| updateAllDismissedVisibility();
|
| }
|
|
|