| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| index b2c873350c55da5307802d9b9de669108249bd72..50a7711c5f8029ea85edc644c4eb4dde34a62cb1 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| @@ -46,7 +46,8 @@
|
| import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
|
| import org.chromium.chrome.browser.ntp.interests.InterestsPage;
|
| import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickListener;
|
| -import org.chromium.chrome.browser.ntp.snippets.SnippetsManager;
|
| +import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge;
|
| +import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| import org.chromium.chrome.browser.profiles.MostVisitedSites;
|
| @@ -113,7 +114,7 @@
|
| private String mAnimatedLogoUrl;
|
| private FakeboxDelegate mFakeboxDelegate;
|
| private OfflinePageBridge mOfflinePageBridge;
|
| - private SnippetsManager mSnippetsManager;
|
| + private SnippetsBridge mSnippetsBridge;
|
|
|
| // The timestamp at which the constructor was called.
|
| private final long mConstructedTimeNs;
|
| @@ -238,7 +239,8 @@ public boolean isInterestsEnabled() {
|
|
|
| @Override
|
| public boolean isToolbarEnabled() {
|
| - return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_TOOLBAR);
|
| + return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_TOOLBAR)
|
| + && !ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS);
|
| }
|
|
|
| private void recordOpenedMostVisitedItem(MostVisitedItem item) {
|
| @@ -401,6 +403,12 @@ public void setMostVisitedURLsObserver(MostVisitedURLsObserver observer, int num
|
| }
|
|
|
| @Override
|
| + public void setSnippetsObserver(SnippetsObserver observer) {
|
| + if (mIsDestroyed) return;
|
| + mSnippetsBridge.setObserver(observer);
|
| + }
|
| +
|
| + @Override
|
| public void getURLThumbnail(String url, ThumbnailCallback thumbnailCallback) {
|
| if (mIsDestroyed) return;
|
| mMostVisitedSites.getURLThumbnail(url, thumbnailCallback);
|
| @@ -525,7 +533,9 @@ public NewTabPage(Activity activity, Tab tab, TabModelSelector tabModelSelector)
|
| mProfile = tab.getProfile();
|
|
|
| mTitle = activity.getResources().getString(R.string.button_new_tab);
|
| - mBackgroundColor = ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_bg);
|
| + mBackgroundColor = ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)
|
| + ? ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_with_cards_bg)
|
| + : ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_bg);
|
| mThemeColor = ApiCompatibilityUtils.getColor(
|
| activity.getResources(), R.color.default_primary_color);
|
| TemplateUrlService.getInstance().addObserver(this);
|
| @@ -549,12 +559,14 @@ public void onHidden(Tab tab) {
|
| mLogoBridge = new LogoBridge(mProfile);
|
| updateSearchProviderHasLogo();
|
|
|
| - mSnippetsManager = new SnippetsManager(mNewTabPageManager, mProfile);
|
| + if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)) {
|
| + mSnippetsBridge = new SnippetsBridge(mProfile);
|
| + }
|
|
|
| LayoutInflater inflater = LayoutInflater.from(activity);
|
| mNewTabPageView = (NewTabPageView) inflater.inflate(R.layout.new_tab_page, null);
|
| mNewTabPageView.initialize(mNewTabPageManager, isInSingleUrlBarMode(activity),
|
| - mSearchProviderHasLogo, mSnippetsManager);
|
| + mSearchProviderHasLogo, mSnippetsBridge != null);
|
|
|
| RecordHistogram.recordBooleanHistogram(
|
| "NewTabPage.MobileIsUserOnline", NetworkChangeNotifier.isOnline());
|
| @@ -611,12 +623,7 @@ private boolean isInSingleUrlBarMode(Context context) {
|
| }
|
|
|
| private void updateSearchProviderHasLogo() {
|
| - if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)) {
|
| - mSearchProviderHasLogo = false;
|
| - if (mNewTabPageView != null) mNewTabPageView.setSearchProviderHasLogo(false);
|
| - } else {
|
| - mSearchProviderHasLogo = TemplateUrlService.getInstance().isDefaultSearchEngineGoogle();
|
| - }
|
| + mSearchProviderHasLogo = TemplateUrlService.getInstance().isDefaultSearchEngineGoogle();
|
| }
|
|
|
| private void onSearchEngineUpdated() {
|
| @@ -712,6 +719,7 @@ public void destroy() {
|
| assert !mIsDestroyed;
|
| assert getView().getParent() == null : "Destroy called before removed from window";
|
| if (mIsVisible) recordNTPInteractionTime();
|
| +
|
| if (mOfflinePageBridge != null) {
|
| mOfflinePageBridge = null;
|
| }
|
| @@ -731,9 +739,9 @@ public void destroy() {
|
| mLogoBridge.destroy();
|
| mLogoBridge = null;
|
| }
|
| - if (mSnippetsManager != null) {
|
| - mSnippetsManager.destroy();
|
| - mSnippetsManager = null;
|
| + if (mSnippetsBridge != null) {
|
| + mSnippetsBridge.destroy();
|
| + mSnippetsBridge = null;
|
| }
|
| if (mMostVisitedItemRemovedController != null) {
|
| mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController);
|
|
|