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 18 matching lines...) Expand all Loading... | |
29 import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareT humbnailProvider; | 29 import org.chromium.chrome.browser.compositor.layouts.content.InvalidationAwareT humbnailProvider; |
30 import org.chromium.chrome.browser.document.DocumentMetricIds; | 30 import org.chromium.chrome.browser.document.DocumentMetricIds; |
31 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils; | 31 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils; |
32 import org.chromium.chrome.browser.favicon.FaviconHelper; | 32 import org.chromium.chrome.browser.favicon.FaviconHelper; |
33 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; | 33 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; |
34 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac k; | 34 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac k; |
35 import org.chromium.chrome.browser.favicon.LargeIconBridge; | 35 import org.chromium.chrome.browser.favicon.LargeIconBridge; |
36 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 36 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
37 import org.chromium.chrome.browser.metrics.StartupMetrics; | 37 import org.chromium.chrome.browser.metrics.StartupMetrics; |
38 import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener; | 38 import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener; |
39 import org.chromium.chrome.browser.ntp.InterestsPage.InterestsListener; | |
39 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; | 40 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; |
40 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; | 41 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; |
41 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; | 42 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
42 import org.chromium.chrome.browser.preferences.DocumentModeManager; | 43 import org.chromium.chrome.browser.preferences.DocumentModeManager; |
43 import org.chromium.chrome.browser.preferences.DocumentModePreference; | 44 import org.chromium.chrome.browser.preferences.DocumentModePreference; |
44 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 45 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
45 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 46 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
46 import org.chromium.chrome.browser.profiles.MostVisitedSites; | 47 import org.chromium.chrome.browser.profiles.MostVisitedSites; |
47 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; | 48 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; |
48 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; | 49 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
162 NativePage page = BookmarksPage.buildPageInDocumentMode( | 163 NativePage page = BookmarksPage.buildPageInDocumentMode( |
163 activity, tab, tabModelSelector, Profile.getLastUsedProfile( ), | 164 activity, tab, tabModelSelector, Profile.getLastUsedProfile( ), |
164 listener); | 165 listener); |
165 page.updateForUrl(UrlConstants.BOOKMARKS_URL); | 166 page.updateForUrl(UrlConstants.BOOKMARKS_URL); |
166 Dialog dialog = new NativePageDialog(activity, page); | 167 Dialog dialog = new NativePageDialog(activity, page); |
167 listener.setDialog(dialog); | 168 listener.setDialog(dialog); |
168 dialog.show(); | 169 dialog.show(); |
169 } | 170 } |
170 } | 171 } |
171 | 172 |
173 public static void launchInterestsDialog(Activity activity, Tab tab) { | |
174 InterestsPage page = | |
175 new InterestsPage(activity, tab, Profile.getLastUsedProfile(), a ctivity); | |
176 Dialog dialog = new NativePageDialog(activity, page); | |
177 | |
178 InterestDialogSelectedListener listener = new InterestDialogSelectedList ener(tab, dialog); | |
179 page.setListener(listener); | |
180 | |
181 dialog.show(); | |
182 } | |
183 | |
172 public static void launchRecentTabsDialog(Activity activity, Tab tab) { | 184 public static void launchRecentTabsDialog(Activity activity, Tab tab) { |
173 DocumentRecentTabsManager manager = new DocumentRecentTabsManager(tab, a ctivity); | 185 DocumentRecentTabsManager manager = new DocumentRecentTabsManager(tab, a ctivity); |
174 NativePage page = new RecentTabsPage(activity, manager); | 186 NativePage page = new RecentTabsPage(activity, manager); |
175 page.updateForUrl(UrlConstants.RECENT_TABS_URL); | 187 page.updateForUrl(UrlConstants.RECENT_TABS_URL); |
176 Dialog dialog = new NativePageDialog(activity, page); | 188 Dialog dialog = new NativePageDialog(activity, page); |
177 manager.setDialog(dialog); | 189 manager.setDialog(dialog); |
178 dialog.show(); | 190 dialog.show(); |
179 } | 191 } |
180 | 192 |
181 @VisibleForTesting | 193 @VisibleForTesting |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
308 if (mIsDestroyed) return; | 320 if (mIsDestroyed) return; |
309 RecordUserAction.record("MobileNTPSwitchToOpenTabs"); | 321 RecordUserAction.record("MobileNTPSwitchToOpenTabs"); |
310 if (FeatureUtilities.isDocumentMode(mActivity)) { | 322 if (FeatureUtilities.isDocumentMode(mActivity)) { |
311 launchRecentTabsDialog(mActivity, mTab); | 323 launchRecentTabsDialog(mActivity, mTab); |
312 } else { | 324 } else { |
313 mTab.loadUrl(new LoadUrlParams(UrlConstants.RECENT_TABS_URL)); | 325 mTab.loadUrl(new LoadUrlParams(UrlConstants.RECENT_TABS_URL)); |
314 } | 326 } |
315 } | 327 } |
316 | 328 |
317 @Override | 329 @Override |
330 public void navigateToInterests() { | |
331 if (mIsDestroyed) return; | |
332 RecordUserAction.record("MobileNTPSwitchToInterests"); | |
333 launchInterestsDialog(mActivity, mTab); | |
334 } | |
335 | |
336 @Override | |
318 public void focusSearchBox(boolean beginVoiceSearch, String pastedText) { | 337 public void focusSearchBox(boolean beginVoiceSearch, String pastedText) { |
319 if (mIsDestroyed) return; | 338 if (mIsDestroyed) return; |
320 if (mFakeboxDelegate != null) { | 339 if (mFakeboxDelegate != null) { |
321 if (beginVoiceSearch) { | 340 if (beginVoiceSearch) { |
322 mFakeboxDelegate.startVoiceRecognition(); | 341 mFakeboxDelegate.startVoiceRecognition(); |
323 } else { | 342 } else { |
324 mFakeboxDelegate.requestUrlFocusFromFakebox(pastedText); | 343 mFakeboxDelegate.requestUrlFocusFromFakebox(pastedText); |
325 } | 344 } |
326 } | 345 } |
327 } | 346 } |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
652 @Override | 671 @Override |
653 public void onBookmarkSelected(String url, String title, Bitmap favicon) { | 672 public void onBookmarkSelected(String url, String title, Bitmap favicon) { |
654 if (mDialog != null) mDialog.dismiss(); | 673 if (mDialog != null) mDialog.dismiss(); |
655 mTab.loadUrl(new LoadUrlParams(url)); | 674 mTab.loadUrl(new LoadUrlParams(url)); |
656 } | 675 } |
657 | 676 |
658 public void setDialog(Dialog dialog) { | 677 public void setDialog(Dialog dialog) { |
659 mDialog = dialog; | 678 mDialog = dialog; |
660 } | 679 } |
661 } | 680 } |
681 | |
682 private static class InterestDialogSelectedListener implements InterestsList ener { | |
Bernhard Bauer
2015/11/19 17:15:15
You could probably even make this an anonymous inn
PEConn
2015/11/20 11:23:41
Done.
| |
683 | |
684 private Dialog mDialog; | |
685 private final Tab mTab; | |
686 | |
687 public InterestDialogSelectedListener(Tab tab, Dialog dialog) { | |
688 mTab = tab; | |
689 mDialog = dialog; | |
690 } | |
691 | |
692 @Override | |
693 public void onInterestClicked(String name) { | |
694 mTab.loadUrl(new LoadUrlParams( | |
695 TemplateUrlService.getInstance().getUrlForSearchQuery(name)) ); | |
696 | |
697 mDialog.dismiss(); | |
698 } | |
699 } | |
662 } | 700 } |
OLD | NEW |