Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java |
| index 06f2f9c6cc025702de1d6c677f7ad9b60a396783..b9b7ef7d7779b381ae5d3bc1355bf71a00af1604 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java |
| @@ -67,6 +67,8 @@ public class LocaleManager { |
| private static LocaleManager sInstance; |
| + protected boolean mSearchEnginePromoShown; |
|
Ted C
2017/05/22 21:57:02
per offline, prefer to use hasShownSearchEnginePro
Yusuf
2017/05/22 22:31:14
Done.
|
| + |
| // LocaleManager is a singleton and it should not have strong reference to UI objects. |
| // SnackbarManager is owned by ChromeActivity and is not null as long as the activity is alive. |
| private WeakReference<SnackbarManager> mSnackbarManager; |
| @@ -98,6 +100,15 @@ public class LocaleManager { |
| } |
| /** |
| + * Default constructor. |
| + */ |
| + public LocaleManager() { |
| + int state = ContextUtils.getAppSharedPreferences().getInt( |
| + KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SEARCH_ENGINE_PROMO_SHOULD_CHECK); |
| + mSearchEnginePromoShown = state == SEARCH_ENGINE_PROMO_CHECKED_AND_SHOWN; |
| + } |
| + |
| + /** |
| * Starts listening to state changes of the phone. |
| */ |
| public void startObservingPhoneChanges() { |
| @@ -284,17 +295,27 @@ public class LocaleManager { |
| } |
| /** |
| + * @return The search engine type for the given url if applicable. |
| + * See template_url_prepopulate_data.cc for all values. |
| + */ |
| + protected static int getSearchEngineType(String url) { |
| + return nativeGetEngineType(url); |
| + } |
| + |
| + /** |
| * To be called after the user has made a selection from a search engine promo dialog. |
| * @param type The type of search engine promo dialog that was shown. |
| + * @param keywords The keywords for all search engines listed in the order shown to the user. |
| * @param keyword The keyword for the search engine chosen. |
| */ |
| protected void onUserSearchEngineChoiceFromPromoDialog( |
| - @SearchEnginePromoType int type, String keyword) { |
| + @SearchEnginePromoType int type, List<String> keywords, String keyword) { |
| TemplateUrlService.getInstance().setSearchEngine(keyword); |
| ContextUtils.getAppSharedPreferences() |
| .edit() |
| .putInt(KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SEARCH_ENGINE_PROMO_CHECKED_AND_SHOWN) |
| .apply(); |
| + mSearchEnginePromoShown = true; |
| } |
| private SpecialLocaleHandler getSpecialLocaleHandler() { |
| @@ -319,4 +340,29 @@ public class LocaleManager { |
| assert sInstance == null; |
| sInstance = instance; |
| } |
| + |
| + /** |
| + * Record any locale based metrics related with the search widget. Recorded on initialization |
| + * only. |
| + * @param widgetPresent Whether there is at least one search widget on home screen. |
| + */ |
| + public void recordLocaleBasedSearchWidgetMetrics(boolean widgetPresent) {} |
| + |
| + /** |
| + * @return Whether the search engine promo has been shown. |
| + */ |
| + public boolean hasShownSearchEnginePromo() { |
| + return mSearchEnginePromoShown; |
| + } |
| + |
| + /** |
| + * Record any locale based metrics related with search. Recorded per search. |
| + * @param isFromSearchWidget Whether the search was performed from the search widget. |
| + * @param url Url for the search made. |
| + * @param transition The transition type for the navigation. |
| + */ |
| + public void recordLocaleBasedSearchMetrics( |
| + boolean isFromSearchWidget, String url, int transition) {} |
|
Ted C
2017/05/22 21:57:02
for the transition, can we tag it with @PageTransi
Yusuf
2017/05/22 22:31:14
We dont really have that defined right now :S. So
|
| + |
| + private static native int nativeGetEngineType(String url); |
| } |