| Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
| index aa8996b2d20550f63d61a11f3205df001d6a7b6a..478ad296dd9810e966a3c0a3de751b128f8c033c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
| @@ -11,16 +11,20 @@ import android.view.View;
|
| import android.view.ViewGroup;
|
| import android.widget.Button;
|
|
|
| +import org.chromium.base.metrics.RecordUserAction;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.locale.DefaultSearchEngineDialogHelper;
|
| import org.chromium.chrome.browser.locale.LocaleManager;
|
| +import org.chromium.chrome.browser.locale.LocaleManager.SearchEnginePromoType;
|
| import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
| import org.chromium.chrome.browser.widget.RadioButtonLayout;
|
|
|
| /** A {@link Fragment} that presents a set of search engines for the user to choose from. */
|
| public class DefaultSearchEngineFirstRunFragment
|
| extends FirstRunPage implements TemplateUrlService.LoadListener {
|
| - private DefaultSearchEngineDialogHelper mHelper;
|
| + @SearchEnginePromoType
|
| + private Integer mSearchEnginePromoDialoType;
|
| + private boolean mShownRecorded;
|
|
|
| /** Layout that displays the available search engines to the user. */
|
| private RadioButtonLayout mEngineLayout;
|
| @@ -48,14 +52,35 @@ public class DefaultSearchEngineFirstRunFragment
|
| public void onTemplateUrlServiceLoaded() {
|
| TemplateUrlService.getInstance().unregisterLoadListener(this);
|
|
|
| - int dialogType = LocaleManager.getInstance().getSearchEnginePromoShowType();
|
| + mSearchEnginePromoDialoType = LocaleManager.getInstance().getSearchEnginePromoShowType();
|
| Runnable dismissRunnable = new Runnable() {
|
| @Override
|
| public void run() {
|
| advanceToNextPage();
|
| }
|
| };
|
| - mHelper = new DefaultSearchEngineDialogHelper(
|
| - dialogType, mEngineLayout, mButton, dismissRunnable);
|
| + new DefaultSearchEngineDialogHelper(
|
| + mSearchEnginePromoDialoType, mEngineLayout, mButton, dismissRunnable);
|
| + if (getUserVisibleHint()) recordShown();
|
| + }
|
| +
|
| + @Override
|
| + public void setUserVisibleHint(boolean isVisibleToUser) {
|
| + super.setUserVisibleHint(isVisibleToUser);
|
| + if (isVisibleToUser) recordShown();
|
| + }
|
| +
|
| + private void recordShown() {
|
| + if (mSearchEnginePromoDialoType == null) return;
|
| +
|
| + if (mShownRecorded) return;
|
| +
|
| + if (mSearchEnginePromoDialoType == LocaleManager.SEARCH_ENGINE_PROMO_SHOW_NEW) {
|
| + RecordUserAction.record("SearchEnginePromo.NewDevice.Shown.FirstRun");
|
| + } else if (mSearchEnginePromoDialoType == LocaleManager.SEARCH_ENGINE_PROMO_SHOW_EXISTING) {
|
| + RecordUserAction.record("SearchEnginePromo.ExistingDevice.Shown.FirstRun");
|
| + }
|
| +
|
| + mShownRecorded = true;
|
| }
|
| }
|
|
|