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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.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/SuggestionsSection.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
index 65ff8d19df3b5297f98d92607fc35ab6c79c65d3..835d83051b01ee8d69a88f57e75e2138b0b406d2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
@@ -8,7 +8,6 @@
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.ntp.NewTabPage.DestructionObserver;
-import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
import org.chromium.chrome.browser.ntp.snippets.CategoryInt;
import org.chromium.chrome.browser.ntp.snippets.CategoryStatus.CategoryStatusEnum;
import org.chromium.chrome.browser.ntp.snippets.SectionHeader;
@@ -20,6 +19,7 @@
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter.SuggestionRanker;
+import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
import java.util.ArrayList;
import java.util.Iterator;
@@ -54,32 +54,34 @@
void dismissSection(SuggestionsSection section);
}
- public SuggestionsSection(Delegate delegate, NewTabPageManager manager, SuggestionRanker ranker,
- OfflinePageBridge offlinePageBridge, SuggestionsCategoryInfo info) {
+ public SuggestionsSection(Delegate delegate, SuggestionsUiDelegate uiDelegate,
+ SuggestionRanker ranker, OfflinePageBridge offlinePageBridge,
+ SuggestionsCategoryInfo info) {
mDelegate = delegate;
mCategoryInfo = info;
mOfflinePageBridge = offlinePageBridge;
mSuggestionRanker = ranker;
mHeader = new SectionHeader(info.getTitle());
- mSuggestionsList = new SuggestionsList(manager, info);
+ mSuggestionsList = new SuggestionsList(uiDelegate, info);
mStatus = StatusItem.createNoSuggestionsItem(info);
mMoreButton = new ActionItem(this);
mProgressIndicator = new ProgressItem();
addChildren(mHeader, mSuggestionsList, mStatus, mMoreButton, mProgressIndicator);
- setupOfflinePageBridgeObserver(manager);
+ setupOfflinePageBridgeObserver(uiDelegate);
refreshChildrenVisibility();
}
private static class SuggestionsList extends ChildNode implements Iterable<SnippetArticle> {
private final List<SnippetArticle> mSuggestions = new ArrayList<>();
- private final NewTabPageManager mNewTabPageManager;
+ // TODO(crbug.com/677672): Replace by SuggestionSource when it handles destruction.
+ private final SuggestionsUiDelegate mUiDelegate;
private final SuggestionsCategoryInfo mCategoryInfo;
- public SuggestionsList(NewTabPageManager newTabPageManager,
- SuggestionsCategoryInfo categoryInfo) {
- mNewTabPageManager = newTabPageManager;
+ public SuggestionsList(
+ SuggestionsUiDelegate uiDelegate, SuggestionsCategoryInfo categoryInfo) {
+ mUiDelegate = uiDelegate;
mCategoryInfo = categoryInfo;
}
@@ -145,7 +147,7 @@ public SnippetArticle remove(int position) {
@Override
public void dismissItem(int position, Callback<String> itemRemovedCallback) {
checkIndex(position);
- SuggestionsSource suggestionsSource = mNewTabPageManager.getSuggestionsSource();
+ SuggestionsSource suggestionsSource = mUiDelegate.getSuggestionsSource();
if (suggestionsSource == null) {
// It is possible for this method to be called after the NewTabPage has had
// destroy() called. This can happen when
@@ -170,7 +172,7 @@ public void updateSuggestionOfflineId(SnippetArticle article, Long newId) {
}
}
- private void setupOfflinePageBridgeObserver(NewTabPageManager manager) {
+ private void setupOfflinePageBridgeObserver(SuggestionsUiDelegate uiDelegate) {
final OfflinePageBridge.OfflinePageModelObserver observer =
new OfflinePageBridge.OfflinePageModelObserver() {
@Override
@@ -200,7 +202,7 @@ public void offlinePageDeleted(long offlineId, ClientId clientId) {
mOfflinePageBridge.addObserver(observer);
- manager.addDestructionObserver(new DestructionObserver() {
+ uiDelegate.addDestructionObserver(new DestructionObserver() {
@Override
public void onDestroy() {
mIsNtpDestroyed = true;

Powered by Google App Engine
This is Rietveld 408576698