OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |