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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java

Issue 1833763002: Add new NTP layout with snippet cards and hide it behind a flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address more comments Created 4 years, 9 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/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);

Powered by Google App Engine
This is Rietveld 408576698