| 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 16a1db12b38fb9739520071d06724ba9f09f7823..2c36ccbdda63bb19d8a08992a252de0668ef0dcc 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
|
| @@ -14,12 +14,14 @@ import org.chromium.base.Callback;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.chrome.browser.ntp.ContextMenuManager;
|
| import org.chromium.chrome.browser.ntp.UiConfig;
|
| +import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder.PartialBindCallback;
|
| import org.chromium.chrome.browser.ntp.snippets.SectionHeaderViewHolder;
|
| import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
|
| import org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| -import org.chromium.chrome.browser.suggestions.PartialUpdateId;
|
| import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
|
| +import org.chromium.chrome.browser.suggestions.TileGrid;
|
| +import org.chromium.chrome.browser.suggestions.TileGroup;
|
|
|
| import java.util.List;
|
| import java.util.Set;
|
| @@ -43,6 +45,9 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
|
|
|
| @Nullable
|
| private final AboveTheFoldItem mAboveTheFold;
|
| +
|
| + @Nullable
|
| + private final TileGrid mTileGrid;
|
| private final SectionList mSections;
|
| private final SignInPromo mSigninPromo;
|
| private final AllDismissedItem mAllDismissed;
|
| @@ -58,10 +63,11 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
|
| * @param uiConfig the NTP UI configuration, to be passed to created views.
|
| * @param offlinePageBridge used to determine if articles are available.
|
| * @param contextMenuManager used to build context menus.
|
| + * @param tileGroupDelegate if not null this is used to build a {@link TileGrid}.
|
| */
|
| public NewTabPageAdapter(SuggestionsUiDelegate uiDelegate, @Nullable View aboveTheFoldView,
|
| UiConfig uiConfig, OfflinePageBridge offlinePageBridge,
|
| - ContextMenuManager contextMenuManager) {
|
| + ContextMenuManager contextMenuManager, @Nullable TileGroup.Delegate tileGroupDelegate) {
|
| mUiDelegate = uiDelegate;
|
| mContextMenuManager = contextMenuManager;
|
|
|
| @@ -80,6 +86,12 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
|
| mAboveTheFold = new AboveTheFoldItem();
|
| mRoot.addChild(mAboveTheFold);
|
| }
|
| + if (tileGroupDelegate == null) {
|
| + mTileGrid = null;
|
| + } else {
|
| + mTileGrid = new TileGrid(uiDelegate, mContextMenuManager, tileGroupDelegate);
|
| + mRoot.addChild(mTileGrid);
|
| + }
|
| mRoot.addChildren(mSections, mSigninPromo, mAllDismissed, mFooter);
|
| if (mAboveTheFoldView == null) {
|
| mBottomSpacer = null;
|
| @@ -106,6 +118,9 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
|
| case ItemViewType.ABOVE_THE_FOLD:
|
| return new NewTabPageViewHolder(mAboveTheFoldView);
|
|
|
| + case ItemViewType.TILE_GRID:
|
| + return new TileGrid.ViewHolder(mRecyclerView);
|
| +
|
| case ItemViewType.HEADER:
|
| return new SectionHeaderViewHolder(mRecyclerView, mUiConfig);
|
|
|
| @@ -148,17 +163,8 @@ public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements
|
| }
|
|
|
| for (Object payload : payloads) {
|
| - @PartialUpdateId
|
| - int updateId = (int) payload;
|
| -
|
| - switch (updateId) {
|
| - case PartialUpdateId.OFFLINE_BADGE:
|
| - assert holder instanceof SnippetArticleViewHolder;
|
| - ((SnippetArticleViewHolder) holder).refreshOfflineBadgeVisibility();
|
| - break;
|
| - default:
|
| - assert false; // Unknown payload
|
| - }
|
| + assert payload instanceof PartialBindCallback;
|
| + ((PartialBindCallback) payload).onResult(holder);
|
| }
|
| }
|
|
|
|
|