Merge "[Settings] Add preference click metric log"
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index 31ac11f..06e6584 100644
--- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -87,6 +87,12 @@
return super.findPreference(key);
}
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ writePreferenceClickMetric(preference);
+ return super.onPreferenceTreeClick(preference);
+ }
+
protected final Context getPrefContext() {
return getPreferenceManager().getContext();
}
@@ -102,6 +108,10 @@
mVisibilityLoggerMixin.writeElapsedTimeMetric(action, key);
}
+ protected void writePreferenceClickMetric(Preference preference) {
+ mMetricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
+ }
+
private void updateActivityTitleWithScreenTitle(PreferenceScreen screen) {
if (screen != null) {
final CharSequence title = screen.getTitle();
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 282cdb9..3a744a9 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -400,16 +400,15 @@
ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
if (tile.userHandle == null || tile.isPrimaryProfileOnly()) {
- mMetricsFeatureProvider.logDashboardStartIntent(mContext, intent, sourceMetricCategory);
+ mMetricsFeatureProvider.logStartedIntent(intent, sourceMetricCategory);
activity.startActivityForResult(intent, 0);
} else if (tile.userHandle.size() == 1) {
- mMetricsFeatureProvider.logDashboardStartIntent(mContext, intent, sourceMetricCategory);
+ mMetricsFeatureProvider.logStartedIntent(intent, sourceMetricCategory);
activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0));
} else {
final UserHandle userHandle = intent.getParcelableExtra(EXTRA_USER);
if (userHandle != null && tile.userHandle.contains(userHandle)) {
- mMetricsFeatureProvider.logDashboardStartIntent(
- mContext, intent, sourceMetricCategory);
+ mMetricsFeatureProvider.logStartedIntent(intent, sourceMetricCategory);
activity.startActivityForResultAsUser(intent, 0, userHandle);
} else {
ProfileSelectDialog.show(activity.getSupportFragmentManager(), tile);
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index a8c4760..0d3d5b0 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -201,16 +201,15 @@
@Override
public boolean onPreferenceTreeClick(Preference preference) {
- Collection<List<AbstractPreferenceController>> controllers =
+ final Collection<List<AbstractPreferenceController>> controllers =
mPreferenceControllers.values();
- // If preference contains intent, log it before handling.
- mMetricsFeatureProvider.logDashboardStartIntent(
- getContext(), preference.getIntent(), getMetricsCategory());
// Give all controllers a chance to handle click.
preference.getExtras().putInt(CATEGORY, getMetricsCategory());
for (List<AbstractPreferenceController> controllerList : controllers) {
for (AbstractPreferenceController controller : controllerList) {
if (controller.handlePreferenceTreeClick(preference)) {
+ // log here since calling super.onPreferenceTreeClick will be skipped
+ writePreferenceClickMetric(preference);
return true;
}
}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 14fd284..3f2b7c3 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -230,8 +230,7 @@
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.getOnPreferenceClickListener().onPreferenceClick(null);
- verify(mFeatureFactory.metricsFeatureProvider).logDashboardStartIntent(
- any(Context.class),
+ verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
any(Intent.class),
eq(MetricsEvent.SETTINGS_GESTURES));
verify(mActivity)
@@ -249,8 +248,7 @@
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.getOnPreferenceClickListener().onPreferenceClick(null);
- verify(mFeatureFactory.metricsFeatureProvider).logDashboardStartIntent(
- any(Context.class),
+ verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
any(Intent.class),
anyInt());
verify(mActivity)