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 } |
| 334 |
| 335 public void trackSnippetOpened(int windowOpenDisposition, SnippetArticle
article) { |
| 336 mSnippetsBridge.onSuggestionOpened(article, windowOpenDisposition); |
333 } | 337 } |
334 | 338 |
335 @Override | 339 @Override |
336 public void trackSnippetImpression(SnippetArticle article) { | 340 public void openSnippet(int windowOpenDisposition, SnippetArticle articl
e) { |
337 mSnippetsBridge.onSuggestionShown(article); | 341 trackSnippetOpened(windowOpenDisposition, 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 public void trackSnippetOpened( | |
372 int windowOpenDisposition, SnippetArticle article, int categoryI
ndex) { | |
373 mSnippetsBridge.onSuggestionOpened(article, categoryIndex, windowOpe
nDisposition); | |
374 } | |
375 | |
376 @Override | |
377 public void openSnippet( | |
378 int windowOpenDisposition, SnippetArticle article, int categoryI
ndex) { | |
379 trackSnippetOpened(windowOpenDisposition, article, categoryIndex); | |
380 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET); | 342 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET); |
381 | 343 |
382 if (article.mIsAssetDownload) { | 344 if (article.mIsAssetDownload) { |
383 assert windowOpenDisposition == WindowOpenDisposition.CURRENT_TA
B | 345 assert windowOpenDisposition == WindowOpenDisposition.CURRENT_TA
B |
384 || windowOpenDisposition == WindowOpenDisposition.NEW_WI
NDOW | 346 || windowOpenDisposition == WindowOpenDisposition.NEW_WI
NDOW |
385 || windowOpenDisposition == WindowOpenDisposition.NEW_FO
REGROUND_TAB; | 347 || windowOpenDisposition == WindowOpenDisposition.NEW_FO
REGROUND_TAB; |
386 DownloadUtils.openFile( | 348 DownloadUtils.openFile( |
387 article.getAssetDownloadFile(), article.getAssetDownload
MimeType(), false); | 349 article.getAssetDownloadFile(), article.getAssetDownload
MimeType(), false); |
388 return; | 350 return; |
389 } | 351 } |
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 @Override | 1025 @Override |
1064 public boolean shouldCaptureThumbnail() { | 1026 public boolean shouldCaptureThumbnail() { |
1065 return mNewTabPageView.shouldCaptureThumbnail(); | 1027 return mNewTabPageView.shouldCaptureThumbnail(); |
1066 } | 1028 } |
1067 | 1029 |
1068 @Override | 1030 @Override |
1069 public void captureThumbnail(Canvas canvas) { | 1031 public void captureThumbnail(Canvas canvas) { |
1070 mNewTabPageView.captureThumbnail(canvas); | 1032 mNewTabPageView.captureThumbnail(canvas); |
1071 } | 1033 } |
1072 } | 1034 } |
OLD | NEW |