| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
|
| index 6f2affdb3274640535673c52f4a62270b858a36b..ee51fc8e7119a7427750752514806bae12080bec 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
|
| @@ -6,7 +6,6 @@
|
|
|
| import org.chromium.base.Log;
|
| import org.chromium.base.VisibleForTesting;
|
| -import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
|
| import org.chromium.chrome.browser.ntp.snippets.CategoryInt;
|
| import org.chromium.chrome.browser.ntp.snippets.CategoryStatus;
|
| import org.chromium.chrome.browser.ntp.snippets.CategoryStatus.CategoryStatusEnum;
|
| @@ -16,6 +15,7 @@
|
| import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter.SuggestionRanker;
|
| +import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
|
|
|
| import java.util.LinkedHashMap;
|
| import java.util.List;
|
| @@ -31,15 +31,15 @@
|
|
|
| /** Maps suggestion categories to sections, with stable iteration ordering. */
|
| private final Map<Integer, SuggestionsSection> mSections = new LinkedHashMap<>();
|
| - private final NewTabPageManager mNewTabPageManager;
|
| + private final SuggestionsUiDelegate mUiDelegate;
|
| private final OfflinePageBridge mOfflinePageBridge;
|
| private final SuggestionRankerImpl mSuggestionRanker;
|
|
|
| - public SectionList(NewTabPageManager newTabPageManager, OfflinePageBridge offlinePageBridge) {
|
| + public SectionList(SuggestionsUiDelegate uiDelegate, OfflinePageBridge offlinePageBridge) {
|
| mSuggestionRanker = new SuggestionRankerImpl();
|
| - mNewTabPageManager = newTabPageManager;
|
| - mNewTabPageManager.getSuggestionsMetricsReporter().setRanker(mSuggestionRanker);
|
| - mNewTabPageManager.getSuggestionsSource().setObserver(this);
|
| + mUiDelegate = uiDelegate;
|
| + mUiDelegate.getMetricsReporter().setRanker(mSuggestionRanker);
|
| + mUiDelegate.getSuggestionsSource().setObserver(this);
|
| mOfflinePageBridge = offlinePageBridge;
|
| resetSections(/* alwaysAllowEmptySections = */ false);
|
| }
|
| @@ -52,7 +52,7 @@ public SectionList(NewTabPageManager newTabPageManager, OfflinePageBridge offlin
|
| public void resetSections(boolean alwaysAllowEmptySections) {
|
| removeAllSections();
|
|
|
| - SuggestionsSource suggestionsSource = mNewTabPageManager.getSuggestionsSource();
|
| + SuggestionsSource suggestionsSource = mUiDelegate.getSuggestionsSource();
|
| int[] categories = suggestionsSource.getCategories();
|
| int[] suggestionsPerCategory = new int[categories.length];
|
| int i = 0;
|
| @@ -67,8 +67,7 @@ public void resetSections(boolean alwaysAllowEmptySections) {
|
| resetSection(category, categoryStatus, alwaysAllowEmptySections);
|
| }
|
|
|
| - mNewTabPageManager.getSuggestionsMetricsReporter().onPageShown(
|
| - categories, suggestionsPerCategory);
|
| + mUiDelegate.getMetricsReporter().onPageShown(categories, suggestionsPerCategory);
|
| }
|
|
|
| /**
|
| @@ -83,7 +82,7 @@ public void resetSections(boolean alwaysAllowEmptySections) {
|
| */
|
| private int resetSection(@CategoryInt int category, @CategoryStatusEnum int categoryStatus,
|
| boolean alwaysAllowEmptySections) {
|
| - SuggestionsSource suggestionsSource = mNewTabPageManager.getSuggestionsSource();
|
| + SuggestionsSource suggestionsSource = mUiDelegate.getSuggestionsSource();
|
| List<SnippetArticle> suggestions = suggestionsSource.getSuggestionsForCategory(category);
|
| SuggestionsCategoryInfo info = suggestionsSource.getCategoryInfo(category);
|
|
|
| @@ -98,7 +97,7 @@ private int resetSection(@CategoryInt int category, @CategoryStatusEnum int cate
|
| // Create the section if needed.
|
| if (section == null) {
|
| section = new SuggestionsSection(
|
| - this, mNewTabPageManager, mSuggestionRanker, mOfflinePageBridge, info);
|
| + this, mUiDelegate, mSuggestionRanker, mOfflinePageBridge, info);
|
| mSections.put(category, section);
|
| mSuggestionRanker.registerCategory(category);
|
| addChild(section);
|
| @@ -113,7 +112,7 @@ private int resetSection(@CategoryInt int category, @CategoryStatusEnum int cate
|
| @Override
|
| public void onNewSuggestions(@CategoryInt int category) {
|
| @CategoryStatusEnum
|
| - int status = mNewTabPageManager.getSuggestionsSource().getCategoryStatus(category);
|
| + int status = mUiDelegate.getSuggestionsSource().getCategoryStatus(category);
|
|
|
| if (!canLoadSuggestions(category, status)) return;
|
|
|
| @@ -121,7 +120,7 @@ public void onNewSuggestions(@CategoryInt int category) {
|
| if (mSections.get(category).hasSuggestions()) return;
|
|
|
| List<SnippetArticle> suggestions =
|
| - mNewTabPageManager.getSuggestionsSource().getSuggestionsForCategory(category);
|
| + mUiDelegate.getSuggestionsSource().getSuggestionsForCategory(category);
|
|
|
| Log.d(TAG, "Received %d new suggestions for category %d.", suggestions.size(), category);
|
|
|
| @@ -134,7 +133,7 @@ public void onNewSuggestions(@CategoryInt int category) {
|
| @Override
|
| public void onMoreSuggestions(@CategoryInt int category, List<SnippetArticle> suggestions) {
|
| @CategoryStatusEnum
|
| - int status = mNewTabPageManager.getSuggestionsSource().getCategoryStatus(category);
|
| + int status = mUiDelegate.getSuggestionsSource().getCategoryStatus(category);
|
| if (!canLoadSuggestions(category, status)) return;
|
|
|
| setSuggestions(category, suggestions, status);
|
| @@ -208,7 +207,7 @@ private boolean canLoadSuggestions(@CategoryInt int category, @CategoryStatusEnu
|
| public void dismissSection(SuggestionsSection section) {
|
| assert SnippetsConfig.isSectionDismissalEnabled();
|
|
|
| - mNewTabPageManager.getSuggestionsSource().dismissCategory(section.getCategory());
|
| + mUiDelegate.getSuggestionsSource().dismissCategory(section.getCategory());
|
| removeSection(section);
|
| }
|
|
|
| @@ -227,9 +226,9 @@ private void removeAllSections() {
|
| * Restores any sections that have been dismissed and triggers a new fetch.
|
| */
|
| public void restoreDismissedSections() {
|
| - mNewTabPageManager.getSuggestionsSource().restoreDismissedCategories();
|
| + mUiDelegate.getSuggestionsSource().restoreDismissedCategories();
|
| resetSections(/* allowEmptySections = */ true);
|
| - mNewTabPageManager.getSuggestionsSource().fetchRemoteSuggestions();
|
| + mUiDelegate.getSuggestionsSource().fetchRemoteSuggestions();
|
| }
|
|
|
| /**
|
|
|