Commit c7b60ea9 authored by Matt Simmons's avatar Matt Simmons Committed by Commit Bot

Extend SuggestionsUiDelegateImpl to reduce method count increase.

Extend the existing impl rather than reimplementing SuggestionsUiDelegate.

Bug: 1004609
Change-Id: I6b79967c925be304dcaf93ceb8c65942ce34fecb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1808787
Commit-Queue: Matt Simmons <mattsimmons@chromium.org>
Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#697414}
parent 36b96982
...@@ -16,14 +16,13 @@ import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource; ...@@ -16,14 +16,13 @@ import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.snackbar.SnackbarManager; import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.suggestions.DestructionObserver;
import org.chromium.chrome.browser.suggestions.ImageFetcher; import org.chromium.chrome.browser.suggestions.ImageFetcher;
import org.chromium.chrome.browser.suggestions.SuggestionsConfig; import org.chromium.chrome.browser.suggestions.SuggestionsConfig;
import org.chromium.chrome.browser.suggestions.SuggestionsDependencyFactory; import org.chromium.chrome.browser.suggestions.SuggestionsDependencyFactory;
import org.chromium.chrome.browser.suggestions.SuggestionsEventReporter; import org.chromium.chrome.browser.suggestions.SuggestionsEventReporter;
import org.chromium.chrome.browser.suggestions.SuggestionsNavigationDelegate;
import org.chromium.chrome.browser.suggestions.SuggestionsRanker; import org.chromium.chrome.browser.suggestions.SuggestionsRanker;
import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate; import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegateImpl;
import org.chromium.chrome.browser.suggestions.tile.SuggestionsTileView; import org.chromium.chrome.browser.suggestions.tile.SuggestionsTileView;
import org.chromium.chrome.browser.suggestions.tile.Tile; import org.chromium.chrome.browser.suggestions.tile.Tile;
import org.chromium.chrome.browser.suggestions.tile.TileGroup; import org.chromium.chrome.browser.suggestions.tile.TileGroup;
...@@ -38,44 +37,40 @@ import org.chromium.ui.base.PageTransition; ...@@ -38,44 +37,40 @@ import org.chromium.ui.base.PageTransition;
* *
* TODO(mattsimmons): Finish MVC of this. The way the renderer builds the layout complicates things. * TODO(mattsimmons): Finish MVC of this. The way the renderer builds the layout complicates things.
*/ */
class MostVisitedListCoordinator class MostVisitedListCoordinator implements TileGroup.Observer, TileGroup.TileSetupDelegate {
implements SuggestionsUiDelegate, TileGroup.Observer, TileGroup.TileSetupDelegate {
private static final int TITLE_LINES = 1; private static final int TITLE_LINES = 1;
// There's a limit of 12 in {@link MostVisitedSitesBridge#setObserver}. // There's a limit of 12 in {@link MostVisitedSitesBridge#setObserver}.
private static final int MAX_RESULTS = 12; private static final int MAX_RESULTS = 12;
private SuggestionsSource mSuggestionsSource;
private SuggestionsRanker mSuggestionsRanker;
private SuggestionsEventReporter mEventReporter;
private SnackbarManager mSnackbarManager;
private TileGroup mTileGroup; private TileGroup mTileGroup;
private ImageFetcher mImageFetcher;
private DiscardableReferencePool mReferencePool;
private TileRenderer mRenderer; private TileRenderer mRenderer;
private ViewGroup mParent; private ViewGroup mParent;
public MostVisitedListCoordinator(ChromeActivity activity, ViewGroup parent) { public MostVisitedListCoordinator(ChromeActivity activity, ViewGroup parent) {
mParent = parent; mParent = parent;
Profile profile = Profile.getLastUsedProfile(); Profile profile = Profile.getLastUsedProfile();
mSuggestionsSource = SuggestionsSource suggestionsSource =
SuggestionsDependencyFactory.getInstance().createSuggestionSource(profile); SuggestionsDependencyFactory.getInstance().createSuggestionSource(profile);
mSuggestionsRanker = new SuggestionsRanker(); SuggestionsRanker suggestionsRanker = new SuggestionsRanker();
mEventReporter = SuggestionsDependencyFactory.getInstance().createEventReporter(); SuggestionsEventReporter eventReporter =
SuggestionsDependencyFactory.getInstance().createEventReporter();
mReferencePool = GlobalDiscardableReferencePool.getReferencePool(); DiscardableReferencePool referencePool = GlobalDiscardableReferencePool.getReferencePool();
mImageFetcher = new ImageFetcher(mSuggestionsSource, profile, mReferencePool); ImageFetcher imageFetcher = new ImageFetcher(suggestionsSource, profile, referencePool);
mSnackbarManager = activity.getSnackbarManager(); SnackbarManager snackbarManager = activity.getSnackbarManager();
mRenderer = new TileRenderer( mRenderer = new TileRenderer(
activity, SuggestionsConfig.TileStyle.MODERN, TITLE_LINES, mImageFetcher); activity, SuggestionsConfig.TileStyle.MODERN, TITLE_LINES, imageFetcher);
OfflinePageBridge offlinePageBridge = OfflinePageBridge offlinePageBridge =
SuggestionsDependencyFactory.getInstance().getOfflinePageBridge(profile); SuggestionsDependencyFactory.getInstance().getOfflinePageBridge(profile);
TileGroupDelegateImpl tileGroupDelegate = TileGroupDelegateImpl tileGroupDelegate =
new TileGroupDelegateImpl(activity, profile, null, mSnackbarManager); new TileGroupDelegateImpl(activity, profile, null, snackbarManager);
mTileGroup = SuggestionsUiDelegate suggestionsUiDelegate = new MostVisitedSuggestionsUiDelegate(
new TileGroup(mRenderer, this, null, tileGroupDelegate, this, offlinePageBridge); suggestionsSource, eventReporter, profile, referencePool, snackbarManager);
mTileGroup = new TileGroup(
mRenderer, suggestionsUiDelegate, null, tileGroupDelegate, this, offlinePageBridge);
mTileGroup.startObserving(MAX_RESULTS); mTileGroup.startObserving(MAX_RESULTS);
} }
...@@ -93,52 +88,7 @@ class MostVisitedListCoordinator ...@@ -93,52 +88,7 @@ class MostVisitedListCoordinator
} }
} }
/** SuggestionsUiDelegate Implementation. */
@Override
public SuggestionsSource getSuggestionsSource() {
return mSuggestionsSource;
}
@Override
public SuggestionsRanker getSuggestionsRanker() {
return mSuggestionsRanker;
}
@Override
public SuggestionsEventReporter getEventReporter() {
return mEventReporter;
}
@Override
public SuggestionsNavigationDelegate getNavigationDelegate() {
return null;
}
@Override
public ImageFetcher getImageFetcher() {
return mImageFetcher;
}
@Override
public SnackbarManager getSnackbarManager() {
return mSnackbarManager;
}
@Override
public DiscardableReferencePool getReferencePool() {
return mReferencePool;
}
@Override
public void addDestructionObserver(DestructionObserver destructionObserver) {}
@Override
public boolean isVisible() {
return false;
}
/** TileGroup.Observer implementation. */ /** TileGroup.Observer implementation. */
@Override @Override
public void onTileDataChanged() { public void onTileDataChanged() {
if (mTileGroup.getTileSections().size() < 1) return; if (mTileGroup.getTileSections().size() < 1) return;
...@@ -181,7 +131,8 @@ class MostVisitedListCoordinator ...@@ -181,7 +131,8 @@ class MostVisitedListCoordinator
return callback; return callback;
} }
private class MostVisitedTileInteractionDelegate implements TileInteractionDelegate { /** Handle interactions with the Most Visited tiles. */
private static class MostVisitedTileInteractionDelegate implements TileInteractionDelegate {
private Tile mTile; private Tile mTile;
public MostVisitedTileInteractionDelegate(Tile tile) { public MostVisitedTileInteractionDelegate(Tile tile) {
...@@ -203,4 +154,19 @@ class MostVisitedListCoordinator ...@@ -203,4 +154,19 @@ class MostVisitedListCoordinator
// TODO(mattsimmons): Handle this, likely not a blocker for MVP. // TODO(mattsimmons): Handle this, likely not a blocker for MVP.
} }
} }
/** Suggestions UI Delegate for constructing the TileGroup. */
private static class MostVisitedSuggestionsUiDelegate extends SuggestionsUiDelegateImpl {
public MostVisitedSuggestionsUiDelegate(SuggestionsSource suggestionsSource,
SuggestionsEventReporter eventReporter, Profile profile,
DiscardableReferencePool referencePool, SnackbarManager snackbarManager) {
super(suggestionsSource, eventReporter, null, profile, null, referencePool,
snackbarManager);
}
@Override
public boolean isVisible() {
return false;
}
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment