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.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.graphics.Canvas; | 9 import android.graphics.Canvas; |
10 import android.graphics.Point; | 10 import android.graphics.Point; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 56 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
57 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | 57 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
58 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 58 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
59 import org.chromium.chrome.browser.profiles.MostVisitedSites; | 59 import org.chromium.chrome.browser.profiles.MostVisitedSites; |
60 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; | 60 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; |
61 import org.chromium.chrome.browser.profiles.Profile; | 61 import org.chromium.chrome.browser.profiles.Profile; |
62 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 62 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
63 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
ServiceObserver; | 63 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
ServiceObserver; |
64 import org.chromium.chrome.browser.snackbar.Snackbar; | 64 import org.chromium.chrome.browser.snackbar.Snackbar; |
65 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; | 65 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; |
| 66 import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter; |
66 import org.chromium.chrome.browser.sync.SyncSessionsMetrics; | 67 import org.chromium.chrome.browser.sync.SyncSessionsMetrics; |
67 import org.chromium.chrome.browser.tab.EmptyTabObserver; | 68 import org.chromium.chrome.browser.tab.EmptyTabObserver; |
68 import org.chromium.chrome.browser.tab.Tab; | 69 import org.chromium.chrome.browser.tab.Tab; |
69 import org.chromium.chrome.browser.tab.TabObserver; | 70 import org.chromium.chrome.browser.tab.TabObserver; |
70 import org.chromium.chrome.browser.tabmodel.TabModel; | 71 import org.chromium.chrome.browser.tabmodel.TabModel; |
71 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; | 72 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
72 import org.chromium.chrome.browser.tabmodel.TabModelSelector; | 73 import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
73 import org.chromium.chrome.browser.tabmodel.TabModelUtils; | 74 import org.chromium.chrome.browser.tabmodel.TabModelUtils; |
74 import org.chromium.chrome.browser.tabmodel.document.TabDelegate; | 75 import org.chromium.chrome.browser.tabmodel.document.TabDelegate; |
75 import org.chromium.chrome.browser.util.UrlUtilities; | 76 import org.chromium.chrome.browser.util.UrlUtilities; |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 } | 321 } |
321 } | 322 } |
322 return false; | 323 return false; |
323 } | 324 } |
324 | 325 |
325 private boolean matchURLs(String url1, String url2, boolean matchByHost)
{ | 326 private boolean matchURLs(String url1, String url2, boolean matchByHost)
{ |
326 if (url1 == null || url2 == null) return false; | 327 if (url1 == null || url2 == null) return false; |
327 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals
(url2); | 328 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals
(url2); |
328 } | 329 } |
329 | 330 |
330 @Override | 331 public SuggestionsMetricsReporter getSuggestionsMetricsReporter() { |
331 public void trackSnippetsPageImpression(int[] categories, int[] suggesti
onsPerCategory) { | 332 return mSnippetsBridge; |
332 mSnippetsBridge.onPageShown(categories, suggestionsPerCategory); | |
333 } | 333 } |
334 | 334 |
335 @Override | 335 @Override |
336 public void trackSnippetImpression(SnippetArticle article) { | |
337 mSnippetsBridge.onSuggestionShown(article); | |
338 } | |
339 | |
340 @Override | |
341 public void trackSnippetMenuOpened(SnippetArticle article) { | |
342 mSnippetsBridge.onSuggestionMenuOpened(article); | |
343 } | |
344 | |
345 @Override | |
346 public void trackSnippetCategoryActionImpression(int category, int posit
ion) { | |
347 mSnippetsBridge.onMoreButtonShown(category, position); | |
348 } | |
349 | |
350 @Override | |
351 public void trackSnippetCategoryActionClick(int category, int position)
{ | |
352 mSnippetsBridge.onMoreButtonClicked(category, position); | |
353 switch (category) { | |
354 case KnownCategories.BOOKMARKS: | |
355 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_BOOKM
ARKS_MANAGER); | |
356 break; | |
357 // MORE button in both categories leads to the recent tabs manag
er | |
358 case KnownCategories.FOREIGN_TABS: | |
359 case KnownCategories.RECENT_TABS: | |
360 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_RECEN
T_TABS_MANAGER); | |
361 break; | |
362 case KnownCategories.DOWNLOADS: | |
363 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNL
OADS_MANAGER); | |
364 break; | |
365 default: | |
366 // No action associated | |
367 break; | |
368 } | |
369 } | |
370 | |
371 @Override | |
372 public void openSnippet(int windowOpenDisposition, SnippetArticle articl
e) { | 336 public void openSnippet(int windowOpenDisposition, SnippetArticle articl
e) { |
373 mSnippetsBridge.onSuggestionOpened(article, windowOpenDisposition); | 337 mSnippetsBridge.onSuggestionOpened(article, windowOpenDisposition); |
374 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET); | 338 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET); |
375 | 339 |
376 if (article.mIsAssetDownload) { | 340 if (article.mIsAssetDownload) { |
377 assert windowOpenDisposition == WindowOpenDisposition.CURRENT_TA
B | 341 assert windowOpenDisposition == WindowOpenDisposition.CURRENT_TA
B |
378 || windowOpenDisposition == WindowOpenDisposition.NEW_WI
NDOW | 342 || windowOpenDisposition == WindowOpenDisposition.NEW_WI
NDOW |
379 || windowOpenDisposition == WindowOpenDisposition.NEW_FO
REGROUND_TAB; | 343 || windowOpenDisposition == WindowOpenDisposition.NEW_FO
REGROUND_TAB; |
380 DownloadUtils.openFile( | 344 DownloadUtils.openFile( |
381 article.getAssetDownloadFile(), article.getAssetDownload
MimeType(), false); | 345 article.getAssetDownloadFile(), article.getAssetDownload
MimeType(), false); |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1057 @Override | 1021 @Override |
1058 public boolean shouldCaptureThumbnail() { | 1022 public boolean shouldCaptureThumbnail() { |
1059 return mNewTabPageView.shouldCaptureThumbnail(); | 1023 return mNewTabPageView.shouldCaptureThumbnail(); |
1060 } | 1024 } |
1061 | 1025 |
1062 @Override | 1026 @Override |
1063 public void captureThumbnail(Canvas canvas) { | 1027 public void captureThumbnail(Canvas canvas) { |
1064 mNewTabPageView.captureThumbnail(canvas); | 1028 mNewTabPageView.captureThumbnail(canvas); |
1065 } | 1029 } |
1066 } | 1030 } |
OLD | NEW |