diff options
author | gogerald <gogerald@chromium.org> | 2016-01-08 09:28:14 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-08 17:29:25 +0000 |
commit | 3f73f9bc8b80e3df186c56f9af436484ed81d12a (patch) | |
tree | 1cf5c9333db9a61f6b295f57e39394f1a72b03c5 | |
parent | f54aa63d9e7ff2877e7c3d6bfb340bafc5559c75 (diff) | |
download | chromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.zip chromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.tar.gz chromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.tar.bz2 |
Implement sign-in related user actions in Chrome for Android.
This CL implements sign-in related user actions in Chrome for Android as design in https://docs.google.com/a/google.com/document/d/1-gXYAMXXgsJhk6jxO55RuYJ00JBGermevJZ0sIlk6ko/edit?usp=sharing.
BUG=532557
Review URL: https://codereview.chromium.org/1537493005
Cr-Commit-Position: refs/heads/master@{#368360}
10 files changed, 81 insertions, 2 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java index 3b0e3b7..c4e39e8 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java @@ -72,6 +72,7 @@ class EnhancedBookmarkPromoHeader implements AndroidSyncSettingsObserver, PreferenceManager.getDefaultSharedPreferences(mContext).edit() .putInt(PREF_SIGNIN_PROMO_SHOW_COUNT, promoShowCount).apply(); RecordUserAction.record("Stars_SignInPromoHeader_Displayed"); + RecordUserAction.record("Signin_Impression_FromBookmarkManager"); } } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java index 2d0618d..7912bd04 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java @@ -120,11 +120,13 @@ public class EnhancedBookmarkSigninActivity extends EnhancedBookmarkActivityBase @Override public void onAccountSelectionConfirmed() { RecordUserAction.record("Stars_SignInPromoActivity_SignedIn"); + RecordUserAction.record("Signin_Signin_FromBookmarkManager"); } @Override public void onNewAccount() { RecordUserAction.record("Stars_SignInPromoActivity_NewAccount"); + RecordUserAction.record("Signin_AddAccountToDevice"); } @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java index 4d69d08..0318783 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java @@ -306,6 +306,7 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD @Override public void onSigninDialogShown() { RecordUserAction.record("MobileFre.SignInShown"); + RecordUserAction.record("Signin_Impression_FromStartPage"); } @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java index 888505c..6ba26366 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java @@ -15,6 +15,7 @@ import android.text.TextUtils; import org.chromium.base.CommandLine; import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.preferences.Preferences; import org.chromium.chrome.browser.preferences.PreferencesLauncher; @@ -91,6 +92,7 @@ public final class FirstRunSignInProcessor { } final boolean setUpSync = getFirstRunFlowSignInSetupSync(activity); + RecordUserAction.record("Signin_Signin_FromStartPage"); signinManager.signInToSelectedAccount(activity, account, SigninManager.SIGNIN_TYPE_INTERACTIVE, new SignInFlowObserver() { private void completeSignIn() { @@ -103,6 +105,7 @@ public final class FirstRunSignInProcessor { @Override public void onSigninComplete() { + RecordUserAction.record("Signin_Signin_Succeed"); completeSignIn(); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java index 6040b59..2b70b63 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java @@ -21,11 +21,13 @@ import android.widget.BaseExpandableListAdapter; import android.widget.TextView; import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionWindow; +import org.chromium.chrome.browser.ntp.RecentTabsPromoView.UserActionListener; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedTab; import org.chromium.ui.WindowOpenDisposition; import org.chromium.ui.base.DeviceFormFactor; @@ -591,7 +593,20 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter { View getChildView(int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { - convertView = new RecentTabsPromoView(mActivity, mRecentTabsManager, null); + convertView = new RecentTabsPromoView( + mActivity, mRecentTabsManager, new UserActionListener() { + @Override + public void onAccountSelectionConfirmed() { + RecordUserAction.record("Signin_Signin_FromRecentTabs"); + } + @Override + public void onNewAccount() { + RecordUserAction.record("Signin_AddAccountToDevice"); + } + }); + } + if (!mRecentTabsManager.isSignedIn()) { + RecordUserAction.record("Signin_Impression_FromRecentTabs"); } return convertView; } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java index 6e32fd5..76a086a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java @@ -14,6 +14,7 @@ import android.preference.PreferenceFragment; import org.chromium.base.Callback; import org.chromium.base.VisibleForTesting; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.PasswordUIView; import org.chromium.chrome.browser.autofill.PersonalDataManager; @@ -207,6 +208,7 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb dialog.setListener(new AddGoogleAccountListener() { @Override public void onAddAccountClicked() { + RecordUserAction.record("Signin_AddAccountToDevice"); AccountAdder.getInstance().addAccount( MainPreferences.this, AccountAdder.ADD_ACCOUNT_RESULT); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java index c1740dd..8fff265 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java @@ -13,6 +13,7 @@ import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.firstrun.AccountFirstRunView; import org.chromium.chrome.browser.firstrun.ProfileDataCache; @@ -89,6 +90,7 @@ public class SigninPromoScreen protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SigninPromoUma.recordAction(SigninPromoUma.SIGNIN_PROMO_SHOWN); + RecordUserAction.record("Signin_Impression_FromSigninPromo"); } @Override @@ -108,6 +110,7 @@ public class SigninPromoScreen mAccountFirstRunView.switchToSignedMode(); SigninManager.get(getOwnerActivity()).logInSignedInUser(); SigninPromoUma.recordAction(SigninPromoUma.SIGNIN_PROMO_ACCEPTED); + RecordUserAction.record("Signin_Signin_Succeed"); } @Override @@ -116,6 +119,7 @@ public class SigninPromoScreen dismiss(); } }; + RecordUserAction.record("Signin_Signin_FromSigninPromo"); SigninManager.get(getOwnerActivity().getApplicationContext()) .signInToSelectedAccount(getOwnerActivity(), account, SigninManager.SIGNIN_TYPE_INTERACTIVE, signInCallback); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java index c6bc48e..732f36d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java @@ -11,6 +11,7 @@ import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.support.v7.app.AlertDialog; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import java.util.List; @@ -39,6 +40,7 @@ public class ChooseAccountFragment extends DialogFragment implements OnClickList } protected void selectAccount(final String account) { + RecordUserAction.record("Signin_Signin_FromSettings"); ConfirmAccountChangeFragment.confirmSyncAccount(account, getActivity()); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java index cfe67e0..140a2e4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java @@ -19,9 +19,11 @@ import android.view.View; import android.widget.TextView; import org.chromium.base.Callback; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.signin.SigninManager; +import org.chromium.chrome.browser.signin.SigninManager.SignInFlowObserver; import org.chromium.sync.signin.AccountManagerHelper; import org.chromium.ui.text.SpanApplier; import org.chromium.ui.text.SpanApplier.SpanInfo; @@ -83,6 +85,7 @@ public class ConfirmAccountChangeFragment extends DialogFragment } })); + RecordUserAction.record("Signin_Show_ImportDataPrompt"); textView.setText(messageWithLink); textView.setMovementMethod(LinkMovementMethod.getInstance()); return new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme) @@ -95,7 +98,10 @@ public class ConfirmAccountChangeFragment extends DialogFragment @Override public void onClick(DialogInterface dialog, int which) { if (which == AlertDialog.BUTTON_POSITIVE) { + RecordUserAction.record("Signin_ImportDataPrompt_ImportData"); signIn(getActivity(), mAccountName); + } else if (which == AlertDialog.BUTTON_NEGATIVE) { + RecordUserAction.record("Signin_ImportDataPrompt_Cancel"); } } @@ -104,6 +110,7 @@ public class ConfirmAccountChangeFragment extends DialogFragment dialogFragment.show(getFragmentManager(), null); // Dismiss the confirmation dialog. dismiss(); + RecordUserAction.record("Signin_ImportDataPrompt_DontImport"); } private static void signIn(final Activity activity, String accountName) { @@ -113,7 +120,14 @@ public class ConfirmAccountChangeFragment extends DialogFragment public void onResult(Account account) { if (account == null) return; SigninManager.get(activity).signInToSelectedAccount(activity, account, - SigninManager.SIGNIN_TYPE_INTERACTIVE, null); + SigninManager.SIGNIN_TYPE_INTERACTIVE, new SignInFlowObserver() { + @Override + public void onSigninComplete() { + RecordUserAction.record("Signin_Signin_Succeed"); + } + @Override + public void onSigninCancelled() {} + }); } }); } diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 5303c25..d2b4dd3 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml @@ -12095,6 +12095,13 @@ should be able to be added at any place in this file. <description>Please enter the description of this user action.</description> </action> +<action name="Signin_AddAccountToDevice"> + <owner>gogerald@chromium.org</owner> + <description> + Recorded when the user chooses to add an account to device. + </description> +</action> + <action name="Signin_EnterpriseAccountPrompt_Cancel"> <owner>gogerald@chromium.org</owner> <description> @@ -12157,6 +12164,13 @@ should be able to be added at any place in this file. </description> </action> +<action name="Signin_Impression_FromBookmarkManager"> + <owner>gogerald@chromium.org</owner> + <description> + Recorded when showing sign in entry in the bookmark manager. + </description> +</action> + <action name="Signin_Impression_FromCloudPrint"> <owner>gogerald@chromium.org</owner> <description> @@ -12190,6 +12204,27 @@ should be able to be added at any place in this file. </description> </action> +<action name="Signin_Impression_FromRecentTabs"> + <owner>gogerald@chromium.org</owner> + <description> + Recorded when showing sign in entry in the recent tabs page. + </description> +</action> + +<action name="Signin_Impression_FromSigninPromo"> + <owner>gogerald@chromium.org</owner> + <description> + Recorded when showing sign in entry in the sign in promo. + </description> +</action> + +<action name="Signin_Impression_FromStartPage"> + <owner>gogerald@chromium.org</owner> + <description> + Recorded when showing sign in entry in the first run experience. + </description> +</action> + <action name="Signin_Show_EnterpriseAccountPrompt"> <owner>gogerald@chromium.org</owner> <description> |