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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java

Issue 2623993007: 🏠 Extract the ContentSuggestionManager interface from NTP (Closed)
Patch Set: aaaand rebase again 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/snippets/SnippetArticleViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
index 92cdf2b204007c34489c183ac59f993a6368d993..a96cbd38736466cea6e33738c9558591e87f9ef2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
@@ -31,7 +31,6 @@
import org.chromium.chrome.browser.ntp.ContextMenuManager.ContextMenuItemId;
import org.chromium.chrome.browser.ntp.ContextMenuManager.Delegate;
import org.chromium.chrome.browser.ntp.DisplayStyleObserver;
-import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
import org.chromium.chrome.browser.ntp.UiConfig;
import org.chromium.chrome.browser.ntp.cards.CardViewHolder;
import org.chromium.chrome.browser.ntp.cards.CardsVariationParameters;
@@ -39,6 +38,7 @@
import org.chromium.chrome.browser.ntp.cards.ImpressionTracker;
import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
import org.chromium.chrome.browser.ntp.cards.SuggestionsCategoryInfo;
+import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
import org.chromium.ui.mojom.WindowOpenDisposition;
import java.net.URI;
@@ -59,7 +59,7 @@
public static final int PARTIAL_UPDATE_OFFLINE_ID = 1;
- private final NewTabPageManager mNewTabPageManager;
+ private final SuggestionsUiDelegate mUiDelegate;
private final TextView mHeadlineTextView;
private final TextView mPublisherTextView;
private final TextView mArticleSnippetTextView;
@@ -77,16 +77,17 @@
/**
* Constructs a {@link SnippetArticleViewHolder} item used to display snippets.
- *
- * @param parent The NewTabPageRecyclerView that is going to contain the newly created view.
- * @param manager The NewTabPageManager object used to open an article.
+ * @param parent The NewTabPageRecyclerView that is going to contain the newly created view.
+ * @param contextMenuManager The manager responsible for the context menu.
+ * @param uiDelegate The delegate object used to open an article, fetch thumbnails, etc.
* @param uiConfig The NTP UI configuration object used to adjust the article UI.
*/
- public SnippetArticleViewHolder(NewTabPageRecyclerView parent, NewTabPageManager manager,
+ public SnippetArticleViewHolder(NewTabPageRecyclerView parent,
+ ContextMenuManager contextMenuManager, SuggestionsUiDelegate uiDelegate,
UiConfig uiConfig) {
- super(R.layout.new_tab_page_snippets_card, parent, uiConfig, manager);
+ super(R.layout.new_tab_page_snippets_card, parent, uiConfig, contextMenuManager);
- mNewTabPageManager = manager;
+ mUiDelegate = uiDelegate;
mThumbnailView = (ImageView) itemView.findViewById(R.id.article_thumbnail);
mHeadlineTextView = (TextView) itemView.findViewById(R.id.article_headline);
mPublisherTextView = (TextView) itemView.findViewById(R.id.article_publisher);
@@ -110,19 +111,22 @@ public void onDisplayStyleChanged(@UiConfig.DisplayStyle int newDisplayStyle) {
@Override
public void onImpression() {
if (mArticle != null && mArticle.trackImpression()) {
- mNewTabPageManager.getSuggestionsMetricsReporter().onSuggestionShown(mArticle);
+ mUiDelegate.getMetricsReporter().onSuggestionShown(mArticle);
mRecyclerView.onSnippetImpression();
}
}
@Override
public void onCardTapped() {
- mNewTabPageManager.openSnippet(WindowOpenDisposition.CURRENT_TAB, mArticle);
+ int windowDisposition = WindowOpenDisposition.CURRENT_TAB;
+ mUiDelegate.getMetricsReporter().onSuggestionOpened(mArticle, windowDisposition);
+ mUiDelegate.getNavigationDelegate().openSnippet(windowDisposition, mArticle);
}
@Override
public void openItem(int windowDisposition) {
- mNewTabPageManager.openSnippet(windowDisposition, mArticle);
+ mUiDelegate.getMetricsReporter().onSuggestionOpened(mArticle, windowDisposition);
+ mUiDelegate.getNavigationDelegate().openSnippet(windowDisposition, mArticle);
}
@Override
@@ -151,7 +155,7 @@ public boolean isItemSupported(@ContextMenuItemId int menuItemId) {
@Override
public void onContextMenuCreated() {
- mNewTabPageManager.getSuggestionsMetricsReporter().onSuggestionMenuOpened(mArticle);
+ mUiDelegate.getMetricsReporter().onSuggestionMenuOpened(mArticle);
}
@Override
@@ -258,8 +262,7 @@ public void onBindViewHolder(
} else {
mThumbnailView.setImageResource(R.drawable.ic_snippet_thumbnail_placeholder);
mImageCallback = new FetchImageCallback(this, mArticle);
- mNewTabPageManager.getSuggestionsSource()
- .fetchSuggestionImage(mArticle, mImageCallback);
+ mUiDelegate.getSuggestionsSource().fetchSuggestionImage(mArticle, mImageCallback);
}
}
@@ -344,7 +347,7 @@ private void fadeThumbnailIn(SnippetArticle snippet, Bitmap thumbnail) {
}
private void fetchFaviconFromLocalCache(final URI snippetUri, final boolean fallbackToService) {
- mNewTabPageManager.getLocalFaviconImageForURL(
+ mUiDelegate.getLocalFaviconImageForURL(
getSnippetDomain(snippetUri), mPublisherFaviconSizePx, new FaviconImageCallback() {
@Override
public void onFaviconAvailable(Bitmap image, String iconUrl) {
@@ -368,7 +371,7 @@ private void fetchFaviconFromService(final URI snippetUri) {
if (sizePx == 0) return;
// Replace the default icon by another one from the service when it is fetched.
- mNewTabPageManager.ensureIconIsAvailable(
+ mUiDelegate.ensureIconIsAvailable(
getSnippetDomain(snippetUri), // Store to the cache for the whole domain.
String.format(FAVICON_SERVICE_FORMAT, snippetUri.getHost(), sizePx),
/*useLargeIcon=*/false, /*isTemporary=*/true, new IconAvailabilityCallback() {

Powered by Google App Engine
This is Rietveld 408576698