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

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

Issue 2809923003: [Home] Add a Chrome Home specific incognito NTP (Closed)
Patch Set: Rebase Created 3 years, 8 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/ChromeHomeNewTabPageBase.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPageBase.java
similarity index 64%
copy from chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPage.java
copy to chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPageBase.java
index 4583a225bcd7af8977d121e84306c4055e4fbe7b..1fabc0b395d7f763e60f3cfda3d53f615ea7f96a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPageBase.java
@@ -5,13 +5,10 @@
package org.chromium.chrome.browser.ntp;
import android.content.Context;
-import android.content.res.Resources;
import android.support.annotation.Nullable;
-import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
-import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeTabbedActivity;
@@ -20,52 +17,40 @@ import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver;
-import org.chromium.chrome.browser.ntp.LogoBridge.Logo;
-import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver;
-import org.chromium.chrome.browser.search_engines.TemplateUrlService;
-import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrlServiceObserver;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
-import org.chromium.chrome.browser.widget.TintedImageButton;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetMetrics;
/**
- * The new tab page to display when Chrome Home is enabled.
+ * The base class for the new tab pages displayed in Chrome Home.
*/
-public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObserver {
- private final Tab mTab;
- private final TabObserver mTabObserver;
- private final TabModelSelector mTabModelSelector;
- private final LogoView.Delegate mLogoDelegate;
- private final OverviewModeObserver mOverviewModeObserver;
+public abstract class ChromeHomeNewTabPageBase implements NativePage {
+ final Tab mTab;
+ final TabObserver mTabObserver;
+ final TabModelSelector mTabModelSelector;
+ final OverviewModeObserver mOverviewModeObserver;
@Nullable
- private final LayoutManagerChrome mLayoutManager;
- private final BottomSheet mBottomSheet;
-
- private final View mView;
- private final LogoView mLogoView;
- private final TintedImageButton mCloseButton;
- private final View mFadingBackgroundView;
-
- private final String mTitle;
- private final int mBackgroundColor;
- private final int mThemeColor;
+ final LayoutManagerChrome mLayoutManager;
+ final BottomSheet mBottomSheet;
+ final View mFadingBackgroundView;
+ final String mTitle;
private boolean mShowOverviewOnClose;
+ private View mCloseButton;
/**
- * Constructs a ChromeHomeNewTabPage.
+ * Constructs a ChromeHomeNewTabPageBase.
* @param context The context used to inflate the view.
- * @param tab The Tab that is showing this new tab page.
+ * @param tab The {@link Tab} that is showing this new tab page.
* @param tabModelSelector The {@link TabModelSelector} used to open tabs.
* @param layoutManager The {@link LayoutManagerChrome} used to observe overview mode changes.
* This may be null if the NTP is created on startup due to
* PartnerBrowserCustomizations.
*/
- public ChromeHomeNewTabPage(final Context context, final Tab tab,
+ public ChromeHomeNewTabPageBase(final Context context, final Tab tab,
final TabModelSelector tabModelSelector,
@Nullable final LayoutManagerChrome layoutManager) {
mTab = tab;
@@ -73,15 +58,7 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
mLayoutManager = layoutManager;
mFadingBackgroundView = mTab.getActivity().getFadingBackgroundView();
mBottomSheet = mTab.getActivity().getBottomSheet();
-
- mView = LayoutInflater.from(context).inflate(R.layout.chrome_home_new_tab_page, null);
- mLogoView = (LogoView) mView.findViewById(R.id.search_provider_logo);
- mCloseButton = (TintedImageButton) mView.findViewById(R.id.close_button);
-
- Resources res = context.getResources();
- mTitle = res.getString(R.string.button_new_tab);
- mBackgroundColor = ApiCompatibilityUtils.getColor(res, R.color.ntp_bg);
- mThemeColor = ApiCompatibilityUtils.getColor(res, R.color.default_primary_color);
+ mTitle = context.getResources().getString(R.string.button_new_tab);
// A new tab may be created on startup due to PartnerBrowserCustomizations before the
// LayoutManagerChrome has been created (see ChromeTabbedActivity#initializeState()).
@@ -115,9 +92,6 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
};
mTab.addObserver(mTabObserver);
- mLogoDelegate = initializeLogoView();
- initializeCloseButton();
-
// If the tab is already showing TabObserver#onShown() won't be called, so we need to call
// #onNewTabPageShown() directly.
boolean tabAlreadyShowing = mTabModelSelector.getCurrentTab() == mTab;
@@ -128,11 +102,6 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
}
@Override
- public View getView() {
- return mView;
- }
-
- @Override
public String getTitle() {
return mTitle;
}
@@ -148,16 +117,6 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
}
@Override
- public int getBackgroundColor() {
- return mBackgroundColor;
- }
-
- @Override
- public int getThemeColor() {
- return mThemeColor;
- }
-
- @Override
public boolean needsToolbarShadow() {
return false;
}
@@ -167,8 +126,6 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
@Override
public void destroy() {
dgn 2017/04/12 22:28:00 nit: adding the @CallSuper annotation will let the
Theresa 2017/04/13 21:28:14 Done.
- mLogoDelegate.destroy();
-
// The next tab will be selected before this one is destroyed. If the currently selected
// tab is a Chrome Home new tab page, the FadingBackgroundView should not be enabled.
mFadingBackgroundView.setEnabled(
@@ -180,11 +137,6 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
mTab.removeObserver(mTabObserver);
}
- private void updateSearchProviderLogoVisibility() {
- boolean hasLogo = TemplateUrlService.getInstance().isDefaultSearchEngineGoogle();
- mLogoView.setVisibility(hasLogo ? View.VISIBLE : View.GONE);
- }
-
private void onNewTabPageShown() {
mFadingBackgroundView.setEnabled(false);
@@ -201,28 +153,11 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
}
private boolean isTabChromeHomeNewTabPage(Tab tab) {
- return tab != null && tab.getUrl().equals(getUrl()) && !tab.isIncognito();
+ return tab != null && tab.getUrl().equals(getUrl());
}
- private LogoView.Delegate initializeLogoView() {
- TemplateUrlService.getInstance().addObserver(this);
-
- final LogoView.Delegate logoDelegate = new LogoDelegateImpl(mTab, mLogoView);
- logoDelegate.getSearchProviderLogo(new LogoObserver() {
- @Override
- public void onLogoAvailable(Logo logo, boolean fromCache) {
- if (logo == null && fromCache) return;
- mLogoView.setDelegate(logoDelegate);
- mLogoView.updateLogo(logo);
- // TODO(twellington): The new logo may be taller than the default logo. Adjust
- // the view positioning.
- }
- });
- updateSearchProviderLogoVisibility();
- return logoDelegate;
- }
-
- private void initializeCloseButton() {
+ void initializeCloseButton(View closeButton) {
+ mCloseButton = closeButton;
mCloseButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -245,17 +180,10 @@ public class ChromeHomeNewTabPage implements NativePage, TemplateUrlServiceObser
return ((ChromeTabbedActivity) mTab.getActivity()).getLayoutManager();
}
- // TemplateUrlServiceObserver overrides.
-
- @Override
- public void onTemplateURLServiceChanged() {
- updateSearchProviderLogoVisibility();
- }
-
// Methods for testing.
@VisibleForTesting
- public TintedImageButton getCloseButtonForTests() {
+ public View getCloseButtonForTests() {
return mCloseButton;
}
}

Powered by Google App Engine
This is Rietveld 408576698