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.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 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
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 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
.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 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
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 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
} 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 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
private static final class SupportData {
final Intent intent;
final int metricsEvent;
@LayoutRes
final int type;
@DrawableRes
@@ -330,6 +344,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
this.summary1 = builder.mSummary1;
this.summary2 = builder.mSummary2;
this.intent = builder.mIntent;
this.metricsEvent = builder.mMetricsEvent;
}
static final class Builder {
@@ -344,6 +359,7 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
private String mSummary1;
private String mSummary2;
private Intent mIntent;
private int mMetricsEvent = -1;
Builder(@LayoutRes int type) {
mType = type;
@@ -374,6 +390,11 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
return this;
}
Builder setMetricsEvent(int metricsEvent) {
mMetricsEvent = metricsEvent;
return this;
}
Builder setIntent(Intent intent) {
mIntent = intent;
return this;

View File

@@ -32,6 +32,8 @@ import android.view.View;
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 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
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 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
@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 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
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.
*/