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

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

Issue 2623993007: 🏠 Extract the ContentSuggestionManager interface from NTP (Closed)
Patch Set: fix destruction of snippets bridge 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/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();
}
/**

Powered by Google App Engine
This is Rietveld 408576698