[Android][WebSignin] Add metric for the dismissal button

This CL adds metric for the dismissal button in the web sign-in bottom
sheet.

(cherry picked from commit b453f4d531e356a4bdd27beb7fd90ab5ecd06150)

Bug: 1139309
Change-Id: Idc381b3a79c77aa471b9b1a0b19bcc8fb731a4ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2479426
Reviewed-by: Boris Sazonov <[email protected]>
Commit-Queue: Alice Wang <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#817988}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2484447
Reviewed-by: Alice Wang <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#485}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountConsistencyPromoAction.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountConsistencyPromoAction.java
index 4bbea88f..21ce1ae 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountConsistencyPromoAction.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountConsistencyPromoAction.java
@@ -31,6 +31,7 @@
         AccountConsistencyPromoAction.DISMISSED_OTHER,
         AccountConsistencyPromoAction.AUTH_ERROR_SHOWN,
         AccountConsistencyPromoAction.GENERIC_ERROR_SHOWN,
+        AccountConsistencyPromoAction.DISMISSED_BUTTON,
 })
 @Retention(RetentionPolicy.SOURCE)
 public @interface AccountConsistencyPromoAction {
@@ -109,5 +110,10 @@
      */
     int GENERIC_ERROR_SHOWN = 13;
 
-    int MAX = 14;
+    /**
+     * User has dismissed the promo by tapping on the dismissal button in the bottom sheet.
+     */
+    int DISMISSED_BUTTON = 14;
+
+    int MAX = 15;
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetMediator.java
index 415ded2..48673df 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetMediator.java
@@ -7,6 +7,7 @@
 import android.accounts.Account;
 import android.content.Context;
 import android.text.TextUtils;
+import android.view.View.OnClickListener;
 
 import androidx.annotation.Nullable;
 
@@ -50,8 +51,13 @@
         mProfileDataCache = new ProfileDataCache(
                 context, context.getResources().getDimensionPixelSize(R.dimen.user_picture_size));
 
-        mModel = AccountPickerBottomSheetProperties.createModel(this::onSelectedAccountClicked,
-                this::onContinueAsClicked, dismissBottomSheetRunnable);
+        OnClickListener onDismissClicked = v -> {
+            AccountPickerDelegate.recordAccountConsistencyPromoAction(
+                    AccountConsistencyPromoAction.DISMISSED_BUTTON);
+            dismissBottomSheetRunnable.run();
+        };
+        mModel = AccountPickerBottomSheetProperties.createModel(
+                this::onSelectedAccountClicked, this::onContinueAsClicked, onDismissClicked);
         mProfileDataCache.addObserver(mProfileDataSourceObserver);
 
         mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetProperties.java
index 2e2e7ade..455e2180 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetProperties.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/account_picker/AccountPickerBottomSheetProperties.java
@@ -130,12 +130,12 @@
      * state {@link ViewState#NO_ACCOUNTS}.
      */
     static PropertyModel createModel(Runnable onSelectedAccountClicked,
-            Runnable onContinueAsClicked, Runnable onDismissClicked) {
+            Runnable onContinueAsClicked, OnClickListener onDismissClicked) {
         return new PropertyModel.Builder(ALL_KEYS)
                 .with(ON_SELECTED_ACCOUNT_CLICKED, v -> onSelectedAccountClicked.run())
                 .with(SELECTED_ACCOUNT_DATA, null)
                 .with(ON_CONTINUE_AS_CLICKED, v -> onContinueAsClicked.run())
-                .with(ON_DISMISS_CLICKED, v -> onDismissClicked.run())
+                .with(ON_DISMISS_CLICKED, onDismissClicked)
                 .with(VIEW_STATE, ViewState.NO_ACCOUNTS)
                 .build();
     }
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 2464cb2..674d307 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -990,6 +990,10 @@
   <int value="13" label="GenericErrorShown">
     The generic error screen was shown to the user.
   </int>
+  <int value="14" label="DismissedButton">
+    User has dismissed the promo by tapping on the dismissal button in the
+    bottom sheet.
+  </int>
 </enum>
 
 <enum name="AccountManagerAccountAdditionSource">