Log button taps in support tab.

Bug: 29282762
Change-Id: I7d573f95450292840413cb5e266915f64f6d667d
This commit is contained in:
Fan Zhang
2016-06-16 17:28:27 -07:00
parent d04b49649e
commit ab2e0390a0
2 changed files with 37 additions and 1 deletions

View File

@@ -29,6 +29,8 @@ import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; 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.R;
import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settings.support.SupportDisclaimerDialogFragment; import com.android.settings.support.SupportDisclaimerDialogFragment;
@@ -111,6 +113,9 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
if (position >= 0 && position < mSupportData.size()) { if (position >= 0 && position < mSupportData.size()) {
final SupportData data = mSupportData.get(position); final SupportData data = mSupportData.get(position);
if (data.intent != null) { if (data.intent != null) {
if (data.metricsEvent >= 0) {
MetricsLogger.action(mActivity, data.metricsEvent);
}
mActivity.startActivityForResult(data.intent, 0); mActivity.startActivityForResult(data.intent, 0);
} }
} }
@@ -185,11 +190,13 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
.setIcon(R.drawable.ic_lightbulb_outline_24) .setIcon(R.drawable.ic_lightbulb_outline_24)
.setText1(R.string.support_tips_and_tricks_title) .setText1(R.string.support_tips_and_tricks_title)
.setIntent(mSupportFeatureProvider.getTipsAndTricksIntent(mActivity)) .setIntent(mSupportFeatureProvider.getTipsAndTricksIntent(mActivity))
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_TIPS_AND_TRICKS)
.build()); .build());
mSupportData.add(new SupportData.Builder(TYPE_SUPPORT_TILE) mSupportData.add(new SupportData.Builder(TYPE_SUPPORT_TILE)
.setIcon(R.drawable.ic_help_24dp) .setIcon(R.drawable.ic_help_24dp)
.setText1(R.string.help_feedback_label) .setText1(R.string.help_feedback_label)
.setIntent(mSupportFeatureProvider.getHelpIntent(mActivity)) .setIntent(mSupportFeatureProvider.getHelpIntent(mActivity))
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_HELP_AND_FEEDBACK)
.build()); .build());
} }
@@ -261,6 +268,8 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
if (mAccount == null) { if (mAccount == null) {
switch (v.getId()) { switch (v.getId()) {
case android.R.id.text1: case android.R.id.text1:
MetricsLogger.action(mActivity,
MetricsProto.MetricsEvent.ACTION_SUPPORT_SIGN_IN);
mActivity.startActivityForResult( mActivity.startActivityForResult(
mSupportFeatureProvider.getAccountLoginIntent(), mSupportFeatureProvider.getAccountLoginIntent(),
0 /* requestCode */); 0 /* requestCode */);
@@ -274,9 +283,13 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
} else { } else {
switch (v.getId()) { switch (v.getId()) {
case android.R.id.text1: case android.R.id.text1:
MetricsLogger.action(mActivity,
MetricsProto.MetricsEvent.ACTION_SUPPORT_PHONE);
tryStartDisclaimerAndSupport(PHONE); tryStartDisclaimerAndSupport(PHONE);
break; break;
case android.R.id.text2: case android.R.id.text2:
MetricsLogger.action(mActivity,
MetricsProto.MetricsEvent.ACTION_SUPPORT_CHAT);
tryStartDisclaimerAndSupport(CHAT); tryStartDisclaimerAndSupport(CHAT);
break; break;
} }
@@ -311,6 +324,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
private static final class SupportData { private static final class SupportData {
final Intent intent; final Intent intent;
final int metricsEvent;
@LayoutRes @LayoutRes
final int type; final int type;
@DrawableRes @DrawableRes
@@ -330,6 +344,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
this.summary1 = builder.mSummary1; this.summary1 = builder.mSummary1;
this.summary2 = builder.mSummary2; this.summary2 = builder.mSummary2;
this.intent = builder.mIntent; this.intent = builder.mIntent;
this.metricsEvent = builder.mMetricsEvent;
} }
static final class Builder { static final class Builder {
@@ -344,6 +359,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
private String mSummary1; private String mSummary1;
private String mSummary2; private String mSummary2;
private Intent mIntent; private Intent mIntent;
private int mMetricsEvent = -1;
Builder(@LayoutRes int type) { Builder(@LayoutRes int type) {
mType = type; mType = type;
@@ -374,6 +390,11 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
return this; return this;
} }
Builder setMetricsEvent(int metricsEvent) {
mMetricsEvent = metricsEvent;
return this;
}
Builder setIntent(Intent intent) { Builder setIntent(Intent intent) {
mIntent = intent; mIntent = intent;
return this; return this;

View File

@@ -32,6 +32,8 @@ import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.TextView; 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.R;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.overlay.SupportFeatureProvider;
@@ -61,7 +63,7 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(R.string.support_disclaimer_title) .setTitle(R.string.support_disclaimer_title)
.setPositiveButton(android.R.string.ok, this) .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()) final View content = LayoutInflater.from(builder.getContext())
.inflate(R.layout.support_disclaimer_content, null); .inflate(R.layout.support_disclaimer_content, null);
final TextView disclaimer = (TextView) content.findViewById(R.id.support_disclaimer_text); final TextView disclaimer = (TextView) content.findViewById(R.id.support_disclaimer_text);
@@ -74,6 +76,11 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
@Override @Override
public void onClick(DialogInterface dialog, int which) { 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 Activity activity = getActivity();
final CheckBox doNotShow = final CheckBox doNotShow =
(CheckBox) getDialog().findViewById(R.id.support_disclaimer_do_not_show_again); (CheckBox) getDialog().findViewById(R.id.support_disclaimer_do_not_show_again);
@@ -81,10 +88,18 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
FeatureFactory.getFactory(activity).getSupportFeatureProvider(activity); FeatureFactory.getFactory(activity).getSupportFeatureProvider(activity);
supportFeatureProvider.setShouldShowDisclaimerDialog(getContext(), !doNotShow.isChecked()); supportFeatureProvider.setShouldShowDisclaimerDialog(getContext(), !doNotShow.isChecked());
final Bundle bundle = getArguments(); final Bundle bundle = getArguments();
MetricsLogger.action(activity, MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_OK);
supportFeatureProvider.startSupport(getActivity(), supportFeatureProvider.startSupport(getActivity(),
(Account) bundle.getParcelable(EXTRA_ACCOUNT), bundle.getInt(EXTRA_TYPE)); (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. * Removes the underlines of {@link android.text.style.URLSpan}s.
*/ */