Log button taps in support tab.

Bug: 29282762
Change-Id: I7d573f95450292840413cb5e266915f64f6d667d
diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java
index 0ed8524..4543f08 100644
--- a/src/com/android/settings/dashboard/SupportItemAdapter.java
+++ b/src/com/android/settings/dashboard/SupportItemAdapter.java
@@ -29,6 +29,8 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.overlay.SupportFeatureProvider;
 import com.android.settings.support.SupportDisclaimerDialogFragment;
@@ -111,6 +113,9 @@
         if (position >= 0 && position < mSupportData.size()) {
             final SupportData data = mSupportData.get(position);
             if (data.intent != null) {
+                if (data.metricsEvent >= 0) {
+                    MetricsLogger.action(mActivity, data.metricsEvent);
+                }
                 mActivity.startActivityForResult(data.intent, 0);
             }
         }
@@ -185,11 +190,13 @@
                 .setIcon(R.drawable.ic_lightbulb_outline_24)
                 .setText1(R.string.support_tips_and_tricks_title)
                 .setIntent(mSupportFeatureProvider.getTipsAndTricksIntent(mActivity))
+                .setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_TIPS_AND_TRICKS)
                 .build());
         mSupportData.add(new SupportData.Builder(TYPE_SUPPORT_TILE)
                 .setIcon(R.drawable.ic_help_24dp)
                 .setText1(R.string.help_feedback_label)
                 .setIntent(mSupportFeatureProvider.getHelpIntent(mActivity))
+                .setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_HELP_AND_FEEDBACK)
                 .build());
     }
 
@@ -261,6 +268,8 @@
             if (mAccount == null) {
                 switch (v.getId()) {
                     case android.R.id.text1:
+                        MetricsLogger.action(mActivity,
+                                MetricsProto.MetricsEvent.ACTION_SUPPORT_SIGN_IN);
                         mActivity.startActivityForResult(
                                 mSupportFeatureProvider.getAccountLoginIntent(),
                                 0 /* requestCode */);
@@ -274,9 +283,13 @@
             } else {
                 switch (v.getId()) {
                     case android.R.id.text1:
+                        MetricsLogger.action(mActivity,
+                                MetricsProto.MetricsEvent.ACTION_SUPPORT_PHONE);
                         tryStartDisclaimerAndSupport(PHONE);
                         break;
                     case android.R.id.text2:
+                        MetricsLogger.action(mActivity,
+                                MetricsProto.MetricsEvent.ACTION_SUPPORT_CHAT);
                         tryStartDisclaimerAndSupport(CHAT);
                         break;
                 }
@@ -311,6 +324,7 @@
     private static final class SupportData {
 
         final Intent intent;
+        final int metricsEvent;
         @LayoutRes
         final int type;
         @DrawableRes
@@ -330,6 +344,7 @@
             this.summary1 = builder.mSummary1;
             this.summary2 = builder.mSummary2;
             this.intent = builder.mIntent;
+            this.metricsEvent = builder.mMetricsEvent;
         }
 
         static final class Builder {
@@ -344,6 +359,7 @@
             private String mSummary1;
             private String mSummary2;
             private Intent mIntent;
+            private int mMetricsEvent = -1;
 
             Builder(@LayoutRes int type) {
                 mType = type;
@@ -374,6 +390,11 @@
                 return this;
             }
 
+            Builder setMetricsEvent(int metricsEvent) {
+                mMetricsEvent = metricsEvent;
+                return this;
+            }
+
             Builder setIntent(Intent intent) {
                 mIntent = intent;
                 return this;
diff --git a/src/com/android/settings/support/SupportDisclaimerDialogFragment.java b/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
index 6387337..db74f0f 100644
--- a/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
+++ b/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
@@ -32,6 +32,8 @@
 import android.widget.CheckBox;
 import android.widget.TextView;
 
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SupportFeatureProvider;
@@ -61,7 +63,7 @@
         final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
                 .setTitle(R.string.support_disclaimer_title)
                 .setPositiveButton(android.R.string.ok, this)
-                .setNegativeButton(android.R.string.cancel, null);
+                .setNegativeButton(android.R.string.cancel, this);
         final View content = LayoutInflater.from(builder.getContext())
                 .inflate(R.layout.support_disclaimer_content, null);
         final TextView disclaimer = (TextView) content.findViewById(R.id.support_disclaimer_text);
@@ -74,6 +76,11 @@
 
     @Override
     public void onClick(DialogInterface dialog, int which) {
+        if (which == Dialog.BUTTON_NEGATIVE) {
+            MetricsLogger.action(getContext(),
+                    MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_CANCEL);
+            return;
+        }
         final Activity activity = getActivity();
         final CheckBox doNotShow =
                 (CheckBox) getDialog().findViewById(R.id.support_disclaimer_do_not_show_again);
@@ -81,10 +88,18 @@
                 FeatureFactory.getFactory(activity).getSupportFeatureProvider(activity);
         supportFeatureProvider.setShouldShowDisclaimerDialog(getContext(), !doNotShow.isChecked());
         final Bundle bundle = getArguments();
+        MetricsLogger.action(activity, MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_OK);
         supportFeatureProvider.startSupport(getActivity(),
                 (Account) bundle.getParcelable(EXTRA_ACCOUNT), bundle.getInt(EXTRA_TYPE));
     }
 
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+        MetricsLogger.action(getContext(),
+                MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_CANCEL);
+    }
+
     /**
      * Removes the underlines of {@link android.text.style.URLSpan}s.
      */