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); |