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

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

Issue 2623993007: 🏠 Extract the ContentSuggestionManager interface from NTP (Closed)
Patch Set: address comments 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 eadf900e456c1b6c2de7282947093781bfa687b4..9ee7337dc3871e0dd7d82d847dd5e127dfac98e6 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
@@ -13,12 +13,13 @@
import org.chromium.base.Callback;
import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
+import org.chromium.chrome.browser.ntp.ContextMenuManager;
import org.chromium.chrome.browser.ntp.UiConfig;
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.SuggestionsUiDelegate;
import java.util.Collections;
import java.util.List;
@@ -30,7 +31,9 @@
* elements will be the cards shown to the user
*/
public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements NodeParent {
- private final NewTabPageManager mNewTabPageManager;
+ private final SuggestionsUiDelegate mUiDelegate;
+ private final ContextMenuManager mContextMenuManager;
+
@Nullable
private final View mAboveTheFoldView;
private final UiConfig mUiConfig;
@@ -48,24 +51,26 @@
/**
* 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 uiDelegate used 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), 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.
+ * @param offlinePageBridge used to determine if articles are available.
+ * @param contextMenuManager used to build context menus.
*/
- public NewTabPageAdapter(NewTabPageManager manager, @Nullable View aboveTheFoldView,
- UiConfig uiConfig, OfflinePageBridge offlinePageBridge) {
- mNewTabPageManager = manager;
+ public NewTabPageAdapter(SuggestionsUiDelegate uiDelegate, @Nullable View aboveTheFoldView,
+ UiConfig uiConfig, OfflinePageBridge offlinePageBridge,
+ ContextMenuManager contextMenuManager) {
+ mUiDelegate = uiDelegate;
+ mContextMenuManager = contextMenuManager;
+
mAboveTheFoldView = aboveTheFoldView;
mUiConfig = uiConfig;
mRoot = new InnerNode();
- mSections = new SectionList(mNewTabPageManager, offlinePageBridge);
- mSigninPromo = new SignInPromo(mNewTabPageManager);
+ mSections = new SectionList(mUiDelegate, offlinePageBridge);
+ mSigninPromo = new SignInPromo(mUiDelegate);
mAllDismissed = new AllDismissedItem();
mFooter = new Footer();
@@ -105,25 +110,27 @@ public NewTabPageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new SectionHeaderViewHolder(mRecyclerView, mUiConfig);
case ItemViewType.SNIPPET:
- return new SnippetArticleViewHolder(mRecyclerView, mNewTabPageManager, mUiConfig);
+ return new SnippetArticleViewHolder(
+ mRecyclerView, mContextMenuManager, mUiDelegate, mUiConfig);
case ItemViewType.SPACING:
return new NewTabPageViewHolder(SpacingItem.createView(parent));
case ItemViewType.STATUS:
- return new StatusCardViewHolder(mRecyclerView, mNewTabPageManager, mUiConfig);
+ return new StatusCardViewHolder(mRecyclerView, mContextMenuManager, mUiConfig);
case ItemViewType.PROGRESS:
return new ProgressViewHolder(mRecyclerView);
case ItemViewType.ACTION:
- return new ActionItem.ViewHolder(mRecyclerView, mNewTabPageManager, mUiConfig);
+ return new ActionItem.ViewHolder(
+ mRecyclerView, mContextMenuManager, mUiDelegate, mUiConfig);
case ItemViewType.PROMO:
- return new SignInPromo.ViewHolder(mRecyclerView, mNewTabPageManager, mUiConfig);
+ return new SignInPromo.ViewHolder(mRecyclerView, mContextMenuManager, mUiConfig);
case ItemViewType.FOOTER:
- return new Footer.ViewHolder(mRecyclerView, mNewTabPageManager);
+ return new Footer.ViewHolder(mRecyclerView, mUiDelegate.getNavigationDelegate());
case ItemViewType.ALL_DISMISSED:
return new AllDismissedItem.ViewHolder(mRecyclerView, mSections);

Powered by Google App Engine
This is Rietveld 408576698