| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3f0abcfb61d716554a4e218921ff54290d1b2752
|
| --- /dev/null
|
| +++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java
|
| @@ -0,0 +1,123 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.chrome.browser.ntp;
|
| +
|
| +import android.content.Context;
|
| +import android.graphics.Canvas;
|
| +import android.view.LayoutInflater;
|
| +import android.view.View;
|
| +
|
| +import com.google.android.apps.chrome.R;
|
| +
|
| +import org.chromium.base.VisibleForTesting;
|
| +import org.chromium.chrome.browser.NativePage;
|
| +import org.chromium.chrome.browser.Tab;
|
| +import org.chromium.chrome.browser.UrlConstants;
|
| +import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareThumbnailProvider;
|
| +import org.chromium.chrome.browser.ntp.IncognitoNewTabPageView.IncognitoNewTabPageManager;
|
| +import org.chromium.content_public.browser.LoadUrlParams;
|
| +
|
| +/**
|
| + * Provides functionality when the user interacts with the Incognito NTP.
|
| + */
|
| +public class IncognitoNewTabPage implements NativePage, InvalidationAwareThumbnailProvider {
|
| +
|
| + private static final String LEARN_MORE_INCOGNITO_LINK =
|
| + "https://www.google.com/support/chrome/bin/answer.py?answer=95464";
|
| +
|
| + private final Tab mTab;
|
| +
|
| + private final String mTitle;
|
| + private final int mBackgroundColor;
|
| + private final IncognitoNewTabPageView mIncognitoNewTabPageView;
|
| +
|
| + private boolean mIsLoaded;
|
| +
|
| + private final IncognitoNewTabPageManager mIncognitoNewTabPageManager =
|
| + new IncognitoNewTabPageManager() {
|
| + @Override
|
| + public void loadIncognitoLearnMore() {
|
| + mTab.loadUrl(new LoadUrlParams(LEARN_MORE_INCOGNITO_LINK));
|
| + }
|
| +
|
| + @Override
|
| + public void onLoadingComplete() {
|
| + mIsLoaded = true;
|
| + }
|
| + };
|
| +
|
| + /**
|
| + * Constructs an Incognito NewTabPage.
|
| + * @param context The context used to create the new tab page's View.
|
| + * @param tab The Tab that is showing this new tab page.
|
| + */
|
| + public IncognitoNewTabPage(Context context, Tab tab) {
|
| + mTab = tab;
|
| +
|
| + mTitle = context.getResources().getString(R.string.button_new_tab);
|
| + mBackgroundColor = context.getResources().getColor(R.color.ntp_bg_incognito);
|
| +
|
| + LayoutInflater inflater = LayoutInflater.from(context);
|
| + mIncognitoNewTabPageView =
|
| + (IncognitoNewTabPageView) inflater.inflate(R.layout.new_tab_page_incognito, null);
|
| + mIncognitoNewTabPageView.initialize(mIncognitoNewTabPageManager);
|
| + }
|
| +
|
| + /**
|
| + * @return Whether the NTP has finished loaded.
|
| + */
|
| + @VisibleForTesting
|
| + public boolean isLoadedForTests() {
|
| + return mIsLoaded;
|
| + }
|
| +
|
| + // NativePage overrides
|
| +
|
| + @Override
|
| + public void destroy() {
|
| + assert getView().getParent() == null : "Destroy called before removed from window";
|
| + }
|
| +
|
| + @Override
|
| + public String getUrl() {
|
| + return UrlConstants.NTP_URL;
|
| + }
|
| +
|
| + @Override
|
| + public String getTitle() {
|
| + return mTitle;
|
| + }
|
| +
|
| + @Override
|
| + public int getBackgroundColor() {
|
| + return mBackgroundColor;
|
| + }
|
| +
|
| + @Override
|
| + public View getView() {
|
| + return mIncognitoNewTabPageView;
|
| + }
|
| +
|
| + @Override
|
| + public String getHost() {
|
| + return UrlConstants.NTP_HOST;
|
| + }
|
| +
|
| + @Override
|
| + public void updateForUrl(String url) {
|
| + }
|
| +
|
| + // InvalidationAwareThumbnailProvider
|
| +
|
| + @Override
|
| + public boolean shouldCaptureThumbnail() {
|
| + return mIncognitoNewTabPageView.shouldCaptureThumbnail();
|
| + }
|
| +
|
| + @Override
|
| + public void captureThumbnail(Canvas canvas) {
|
| + mIncognitoNewTabPageView.captureThumbnail(canvas);
|
| + }
|
| +}
|
|
|