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

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

Issue 2573173002: 📰 Split TreeNode#init into SetParent and SetChildren (Closed)
Patch Set: revert getChildren() change Created 4 years 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 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();
}

Powered by Google App Engine
This is Rietveld 408576698