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

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

Issue 2593523005: Add an experimental standalone content suggestions UI. (Closed)
Patch Set: sync 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 4d748070fe131c247518b1021d03560dd0d965fb..3299b3475d17f7421b75be266886590da408112e 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
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.ntp.cards;
+import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.ViewHolder;
@@ -27,32 +28,34 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
*/
public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements NodeParent {
private final NewTabPageManager mNewTabPageManager;
+ @Nullable
private final View mAboveTheFoldView;
private final UiConfig mUiConfig;
private NewTabPageRecyclerView mRecyclerView;
private final InnerNode mRoot;
- private final AboveTheFoldItem mAboveTheFold = new AboveTheFoldItem();
+ @Nullable
+ private final AboveTheFoldItem mAboveTheFold;
private final SectionList mSections;
private final SignInPromo mSigninPromo;
private final AllDismissedItem mAllDismissed;
private final Footer mFooter;
- private final SpacingItem mBottomSpacer = new SpacingItem();
+ private final SpacingItem mBottomSpacer;
/**
* Creates the adapter that will manage all the cards to display on the NTP.
*
* @param manager the NewTabPageManager to use to interact with the rest of the system.
* @param aboveTheFoldView the layout encapsulating all the above-the-fold elements
- * (logo, search box, most visited tiles)
+ * (logo, search box, most visited tiles), or null if only suggestions should
+ * be displayed.
* @param uiConfig the NTP UI configuration, to be passed to created views.
* @param offlinePageBridge the OfflinePageBridge used to determine if articles are available
- * offline.
- *
+ * offline.
*/
- public NewTabPageAdapter(NewTabPageManager manager, View aboveTheFoldView, UiConfig uiConfig,
- OfflinePageBridge offlinePageBridge) {
+ public NewTabPageAdapter(NewTabPageManager manager, @Nullable View aboveTheFoldView,
+ UiConfig uiConfig, OfflinePageBridge offlinePageBridge) {
mNewTabPageManager = manager;
mAboveTheFoldView = aboveTheFoldView;
mUiConfig = uiConfig;
@@ -63,8 +66,19 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
mAllDismissed = new AllDismissedItem();
mFooter = new Footer();
- mRoot.addChildren(
- mAboveTheFold, mSections, mSigninPromo, mAllDismissed, mFooter, mBottomSpacer);
+ if (mAboveTheFoldView == null) {
+ mAboveTheFold = null;
+ } else {
+ mAboveTheFold = new AboveTheFoldItem();
+ mRoot.addChild(mAboveTheFold);
+ }
+ mRoot.addChildren(mSections, mSigninPromo, mAllDismissed, mFooter);
+ if (mAboveTheFoldView == null) {
+ mBottomSpacer = null;
+ } else {
+ mBottomSpacer = new SpacingItem();
+ mRoot.addChild(mBottomSpacer);
+ }
updateAllDismissedVisibility();
mRoot.setParent(this);
@@ -127,6 +141,8 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
}
public int getAboveTheFoldPosition() {
+ if (mAboveTheFoldView == null) return RecyclerView.NO_POSITION;
+
return getChildPositionOffset(mAboveTheFold);
}
@@ -146,6 +162,8 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
}
int getBottomSpacerPosition() {
+ if (mBottomSpacer == null) return RecyclerView.NO_POSITION;
+
return getChildPositionOffset(mBottomSpacer);
}
@@ -165,7 +183,7 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
public void onItemRangeInserted(TreeNode child, int itemPosition, int itemCount) {
assert child == mRoot;
notifyItemRangeInserted(itemPosition, itemCount);
- mBottomSpacer.refresh();
+ if (mBottomSpacer != null) mBottomSpacer.refresh();
updateAllDismissedVisibility();
}
@@ -174,7 +192,7 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
public void onItemRangeRemoved(TreeNode child, int itemPosition, int itemCount) {
assert child == mRoot;
notifyItemRangeRemoved(itemPosition, itemCount);
- mBottomSpacer.refresh();
+ if (mBottomSpacer != null) mBottomSpacer.refresh();
updateAllDismissedVisibility();
}

Powered by Google App Engine
This is Rietveld 408576698