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 8539a53fe7f8bf835b61f1367598d5e3e8a1e30c..438c12242537156354b6ec66ebf8518933a545e8 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 |
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.favicon.LargeIconBridge; |
import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
import org.chromium.chrome.browser.metrics.StartupMetrics; |
import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener; |
+import org.chromium.chrome.browser.ntp.InterestsPage.InterestsClickListener; |
import org.chromium.chrome.browser.ntp.LogoBridge.Logo; |
import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; |
import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
@@ -57,6 +58,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
import org.chromium.chrome.browser.util.FeatureUtilities; |
import org.chromium.content_public.browser.LoadUrlParams; |
import org.chromium.net.NetworkChangeNotifier; |
+import org.chromium.sync.signin.ChromeSigninController; |
import org.chromium.ui.base.DeviceFormFactor; |
import org.chromium.ui.base.PageTransition; |
@@ -177,6 +179,24 @@ public class NewTabPage |
} |
} |
+ public static void launchInterestsDialog(Activity activity, final Tab tab) { |
+ InterestsPage page = |
+ new InterestsPage(activity, tab, Profile.getLastUsedProfile()); |
+ final Dialog dialog = new NativePageDialog(activity, page); |
+ |
+ InterestsClickListener listener = new InterestsClickListener() { |
+ @Override |
+ public void onInterestClicked(String name) { |
+ tab.loadUrl(new LoadUrlParams( |
+ TemplateUrlService.getInstance().getUrlForSearchQuery(name))); |
+ dialog.dismiss(); |
+ } |
+ }; |
+ |
+ page.setListener(listener); |
+ dialog.show(); |
+ } |
+ |
public static void launchRecentTabsDialog(Activity activity, Tab tab) { |
DocumentRecentTabsManager manager = new DocumentRecentTabsManager(tab, activity); |
NativePage page = new RecentTabsPage(activity, manager); |
@@ -205,6 +225,11 @@ public class NewTabPage |
return mFakeboxDelegate != null && mFakeboxDelegate.isVoiceSearchEnabled(); |
} |
+ @Override |
+ public boolean isUserSignedIn() { |
+ return ChromeSigninController.get(mActivity).isSignedIn(); |
+ } |
+ |
private void recordOpenedMostVisitedItem(MostVisitedItem item) { |
if (mIsDestroyed) return; |
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_MOST_VISITED_ENTRY); |
@@ -323,6 +348,14 @@ public class NewTabPage |
} |
@Override |
+ public void navigateToInterests() { |
+ if (mIsDestroyed) return; |
+ RecordUserAction.record("MobileNTP.Interests.OpenDialog"); |
+ // TODO(peconn): Make this load a native page on tablets. |
+ launchInterestsDialog(mActivity, mTab); |
+ } |
+ |
+ @Override |
public void focusSearchBox(boolean beginVoiceSearch, String pastedText) { |
if (mIsDestroyed) return; |
if (mFakeboxDelegate != null) { |