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 2d7b839225148c61ac4488e8d628f803784059ae..62cf6d0168d45ddaa86380ce6d84d1c0e02e2d05 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.SuggestionsRanker; |
+import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate; |
import java.util.ArrayList; |
import java.util.Iterator; |
@@ -61,7 +61,7 @@ |
void dismissSection(SuggestionsSection section); |
} |
- public SuggestionsSection(Delegate delegate, NewTabPageManager manager, |
+ public SuggestionsSection(Delegate delegate, SuggestionsUiDelegate uiDelegate, |
SuggestionsRanker ranker, OfflinePageBridge offlinePageBridge, |
SuggestionsCategoryInfo info) { |
mDelegate = delegate; |
@@ -70,24 +70,25 @@ public SuggestionsSection(Delegate delegate, NewTabPageManager manager, |
mSuggestionsRanker = ranker; |
mHeader = new SectionHeader(info.getTitle()); |
- mSuggestionsList = new SuggestionsList(manager, info); |
+ mSuggestionsList = new SuggestionsList(uiDelegate, info); |
mStatus = StatusItem.createNoSuggestionsItem(info); |
mMoreButton = new ActionItem(this, ranker); |
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; |
} |
@@ -164,7 +165,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 |
@@ -189,7 +190,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 |
@@ -219,7 +220,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; |