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

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

Issue 1351303003: Add the UI for the Interests Prototype. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ntp-interests-jni
Patch Set: Fetch the oauth token from the native code. Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.ntp; 5 package org.chromium.chrome.browser.ntp;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.app.Dialog; 8 import android.app.Dialog;
9 import android.content.Context; 9 import android.content.Context;
10 import android.graphics.Bitmap; 10 import android.graphics.Bitmap;
(...skipping 14 matching lines...) Expand all
25 import org.chromium.chrome.browser.UrlConstants; 25 import org.chromium.chrome.browser.UrlConstants;
26 import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareT humbnailProvider; 26 import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareT humbnailProvider;
27 import org.chromium.chrome.browser.document.DocumentMetricIds; 27 import org.chromium.chrome.browser.document.DocumentMetricIds;
28 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils; 28 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils;
29 import org.chromium.chrome.browser.favicon.FaviconHelper; 29 import org.chromium.chrome.browser.favicon.FaviconHelper;
30 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconAvailabilityCall back; 30 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconAvailabilityCall back;
31 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; 31 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback;
32 import org.chromium.chrome.browser.favicon.LargeIconBridge; 32 import org.chromium.chrome.browser.favicon.LargeIconBridge;
33 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; 33 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
34 import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener; 34 import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener;
35 import org.chromium.chrome.browser.ntp.InterestsPage.InterestsListener;
35 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; 36 import org.chromium.chrome.browser.ntp.LogoBridge.Logo;
36 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; 37 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver;
37 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; 38 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
38 import org.chromium.chrome.browser.preferences.DocumentModeManager; 39 import org.chromium.chrome.browser.preferences.DocumentModeManager;
39 import org.chromium.chrome.browser.preferences.DocumentModePreference; 40 import org.chromium.chrome.browser.preferences.DocumentModePreference;
40 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 41 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
41 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 42 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
42 import org.chromium.chrome.browser.profiles.MostVisitedSites; 43 import org.chromium.chrome.browser.profiles.MostVisitedSites;
43 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; 44 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver;
44 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; 45 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback;
45 import org.chromium.chrome.browser.profiles.Profile; 46 import org.chromium.chrome.browser.profiles.Profile;
46 import org.chromium.chrome.browser.search_engines.TemplateUrlService; 47 import org.chromium.chrome.browser.search_engines.TemplateUrlService;
47 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl ServiceObserver; 48 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl ServiceObserver;
48 import org.chromium.chrome.browser.tab.Tab; 49 import org.chromium.chrome.browser.tab.Tab;
49 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 50 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
50 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 51 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
51 import org.chromium.chrome.browser.util.FeatureUtilities; 52 import org.chromium.chrome.browser.util.FeatureUtilities;
52 import org.chromium.content_public.browser.LoadUrlParams; 53 import org.chromium.content_public.browser.LoadUrlParams;
53 import org.chromium.ui.base.DeviceFormFactor; 54 import org.chromium.ui.base.DeviceFormFactor;
54 import org.chromium.ui.base.PageTransition; 55 import org.chromium.ui.base.PageTransition;
55 56
57 import java.io.UnsupportedEncodingException;
58 import java.net.URLEncoder;
56 import java.util.concurrent.TimeUnit; 59 import java.util.concurrent.TimeUnit;
57 60
58 /** 61 /**
59 * Provides functionality when the user interacts with the NTP. 62 * Provides functionality when the user interacts with the NTP.
60 */ 63 */
61 public class NewTabPage 64 public class NewTabPage
62 implements NativePage, InvalidationAwareThumbnailProvider, TemplateUrlSe rviceObserver { 65 implements NativePage, InvalidationAwareThumbnailProvider, TemplateUrlSe rviceObserver {
63 66
64 // The number of times that an opt-out promo will be shown. 67 // The number of times that an opt-out promo will be shown.
65 private static final int MAX_OPT_OUT_PROMO_COUNT = 10; 68 private static final int MAX_OPT_OUT_PROMO_COUNT = 10;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 NativePage page = BookmarksPage.buildPageInDocumentMode( 155 NativePage page = BookmarksPage.buildPageInDocumentMode(
153 activity, tab, tabModelSelector, Profile.getLastUsedProfile( ), 156 activity, tab, tabModelSelector, Profile.getLastUsedProfile( ),
154 listener); 157 listener);
155 page.updateForUrl(UrlConstants.BOOKMARKS_URL); 158 page.updateForUrl(UrlConstants.BOOKMARKS_URL);
156 Dialog dialog = new NativePageDialog(activity, page); 159 Dialog dialog = new NativePageDialog(activity, page);
157 listener.setDialog(dialog); 160 listener.setDialog(dialog);
158 dialog.show(); 161 dialog.show();
159 } 162 }
160 } 163 }
161 164
165 public static void launchInterestsDialog(Activity activity, Tab tab) {
166 InterestDialogSelectedListener listener = new InterestDialogSelectedList ener(tab);
167 NativePage page = new InterestsPage(activity, tab, Profile.getLastUsedPr ofile(),
168 listener, activity);
169 Dialog dialog = new NativePageDialog(activity, page);
170 listener.setDialog(dialog);
171
172 dialog.show();
173 }
174
162 public static void launchRecentTabsDialog(Activity activity, Tab tab) { 175 public static void launchRecentTabsDialog(Activity activity, Tab tab) {
163 DocumentRecentTabsManager manager = new DocumentRecentTabsManager(tab, a ctivity); 176 DocumentRecentTabsManager manager = new DocumentRecentTabsManager(tab, a ctivity);
164 NativePage page = new RecentTabsPage(activity, manager); 177 NativePage page = new RecentTabsPage(activity, manager);
165 page.updateForUrl(UrlConstants.RECENT_TABS_URL); 178 page.updateForUrl(UrlConstants.RECENT_TABS_URL);
166 Dialog dialog = new NativePageDialog(activity, page); 179 Dialog dialog = new NativePageDialog(activity, page);
167 manager.setDialog(dialog); 180 manager.setDialog(dialog);
168 dialog.show(); 181 dialog.show();
169 } 182 }
170 183
171 @VisibleForTesting 184 @VisibleForTesting
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 @Override 617 @Override
605 public void onBookmarkSelected(String url, String title, Bitmap favicon) { 618 public void onBookmarkSelected(String url, String title, Bitmap favicon) {
606 if (mDialog != null) mDialog.dismiss(); 619 if (mDialog != null) mDialog.dismiss();
607 mTab.loadUrl(new LoadUrlParams(url)); 620 mTab.loadUrl(new LoadUrlParams(url));
608 } 621 }
609 622
610 public void setDialog(Dialog dialog) { 623 public void setDialog(Dialog dialog) {
611 mDialog = dialog; 624 mDialog = dialog;
612 } 625 }
613 } 626 }
627
628 private static class InterestDialogSelectedListener implements InterestsList ener {
629 private static final String GOOGLE_SEARCH_URL_PATTERN =
630 "https://www.google.com/search?tbm=nws&q=%s";
631 private Dialog mDialog;
632 private final Tab mTab;
633
634 public InterestDialogSelectedListener(Tab tab) {
635 mTab = tab;
636 }
637
638 @Override
639 public void onInterestClicked(String name) {
640 if (mDialog == null) {
Bernhard Bauer 2015/09/29 14:33:28 When would this happen?
PEConn 2015/11/18 15:26:57 Done.
641 return;
642 }
643
644 try {
645 String url = String.format(GOOGLE_SEARCH_URL_PATTERN,
newt (away) 2015/09/29 17:33:22 I think you want TemplateUrlService.getInstance().
PEConn 2015/11/18 15:26:57 Done.
646 URLEncoder.encode(name, "UTF-8"));
647
648 mTab.loadUrl(new LoadUrlParams(url));
649 } catch (UnsupportedEncodingException e) {
650 // Don't redirect the tab if we have failed to encode the url. T his should not
651 // happen.
652 }
653
654 mDialog.dismiss();
655 }
656
657 public void setDialog(Dialog dialog) {
658 mDialog = dialog;
659 }
660 }
614 } 661 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698