Change preference value changed metrics log format
- Pass metric category into SharedPreferenceLogger
- Update MainSwitchBar metric log format
Bug: 246483846
Test: Robotest
Change-Id: I91c7b89ee35ae4922aea0d8c998f7d0e33365da2
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 1553a54..076d0e1 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -24,6 +24,7 @@
import android.app.ActionBar;
import android.app.ActivityManager;
+import android.app.settings.SettingsEnums;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -230,11 +231,32 @@
@Override
public SharedPreferences getSharedPreferences(String name, int mode) {
- if (name.equals(getPackageName() + "_preferences")) {
- return new SharedPreferencesLogger(this, getMetricsTag(),
- FeatureFactory.getFactory(this).getMetricsFeatureProvider());
+ if (!TextUtils.equals(name, getPackageName() + "_preferences")) {
+ return super.getSharedPreferences(name, mode);
}
- return super.getSharedPreferences(name, mode);
+
+ String tag = getMetricsTag();
+
+ return new SharedPreferencesLogger(this, tag,
+ FeatureFactory.getFactory(this).getMetricsFeatureProvider(),
+ lookupMetricsCategory());
+ }
+
+ private int lookupMetricsCategory() {
+ int category = SettingsEnums.PAGE_UNKNOWN;
+ Bundle args = null;
+ if (getIntent() != null) {
+ args = getIntent().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ }
+
+ Fragment fragment = Utils.getTargetFragment(this, getMetricsTag(), args);
+
+ if (fragment instanceof Instrumentable) {
+ category = ((Instrumentable) fragment).getMetricsCategory();
+ }
+ Log.d(LOG_TAG, "MetricsCategory is " + category);
+
+ return category;
}
private String getMetricsTag() {
@@ -242,13 +264,11 @@
if (getIntent() != null && getIntent().hasExtra(EXTRA_SHOW_FRAGMENT)) {
tag = getInitialFragmentName(getIntent());
}
+
if (TextUtils.isEmpty(tag)) {
Log.w(LOG_TAG, "MetricsTag is invalid " + tag);
tag = getClass().getName();
}
- if (tag.startsWith("com.android.settings.")) {
- tag = tag.replace("com.android.settings.", "");
- }
return tag;
}
@@ -320,7 +340,7 @@
}
mMainSwitch = findViewById(R.id.switch_bar);
if (mMainSwitch != null) {
- mMainSwitch.setMetricsTag(getMetricsTag());
+ mMainSwitch.setMetricsCategory(lookupMetricsCategory());
mMainSwitch.setTranslationZ(findViewById(R.id.main_content).getTranslationZ() + 1);
}
diff --git a/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
index f165897..e85576b 100644
--- a/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
@@ -41,6 +41,22 @@
}
@Override
+ public void clicked(int sourceCategory, String key) {
+ if (shouldDisableGenericEventLogging()) {
+ return;
+ }
+ super.clicked(sourceCategory, key);
+ }
+
+ @Override
+ public void changed(int category, String key, int value) {
+ if (shouldDisableGenericEventLogging()) {
+ return;
+ }
+ super.changed(category, key, value);
+ }
+
+ @Override
public void action(Context context, int category, String pkg) {
if (shouldDisableGenericEventLogging()) {
return;
diff --git a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
index 8dfa095..86ee3d6 100644
--- a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
@@ -85,6 +85,10 @@
}
@Override
+ public void changed(int category, String key, int value) {
+ }
+
+ @Override
public void action(Context context, int action, Pair<Integer, Object>... taggedData) {
action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
action,
diff --git a/src/com/android/settings/core/instrumentation/StatsLogWriter.java b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
index 15b589f..7b5915a 100644
--- a/src/com/android/settings/core/instrumentation/StatsLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
@@ -55,6 +55,16 @@
}
@Override
+ public void changed(int sourceCategory, String key, int value) {
+ SettingsStatsLog.write(SettingsStatsLog.SETTINGS_UI_CHANGED /* Atom name */,
+ sourceCategory /* attribution */,
+ SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE /* action */,
+ SettingsEnums.PAGE_UNKNOWN /* pageId */,
+ key /* changedPreferenceKey */,
+ value /* changedPreferenceIntValue */);
+ }
+
+ @Override
public void action(Context context, int action, Pair<Integer, Object>... taggedData) {
action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
action,
diff --git a/src/com/android/settings/widget/SettingsMainSwitchBar.java b/src/com/android/settings/widget/SettingsMainSwitchBar.java
index 5f752f9..5ad16d7 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchBar.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchBar.java
@@ -18,7 +18,6 @@
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
@@ -55,7 +54,7 @@
private final MetricsFeatureProvider mMetricsFeatureProvider;
private OnBeforeCheckedChangeListener mOnBeforeListener;
- private String mMetricsTag;
+ private int mMetricsCategory;
public SettingsMainSwitchBar(Context context) {
this(context, null);
@@ -125,12 +124,7 @@
}
protected void onRestrictedIconClick() {
- mMetricsFeatureProvider.action(
- SettingsEnums.PAGE_UNKNOWN,
- SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
- SettingsEnums.PAGE_UNKNOWN,
- mMetricsTag + "/switch_bar|restricted",
- 1);
+ mMetricsFeatureProvider.clicked(mMetricsCategory, "switch_bar|restricted");
}
@Override
@@ -159,8 +153,8 @@
/**
* Set the metrics tag.
*/
- public void setMetricsTag(String tag) {
- mMetricsTag = tag;
+ public void setMetricsCategory(int category) {
+ mMetricsCategory = category;
}
private View getDelegatingView() {
@@ -168,11 +162,6 @@
}
private void logMetrics(boolean isChecked) {
- mMetricsFeatureProvider.action(
- SettingsEnums.PAGE_UNKNOWN,
- SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
- SettingsEnums.PAGE_UNKNOWN,
- mMetricsTag + "/switch_bar",
- isChecked ? 1 : 0);
+ mMetricsFeatureProvider.changed(mMetricsCategory, "switch_bar", isChecked ? 1 : 0);
}
}