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() { |