Merge "Change preference value changed metrics log format"
This commit is contained in:
@@ -50,6 +50,34 @@ public class EventLogWriter implements LogWriter {
|
||||
|
||||
@Override
|
||||
public void clicked(int sourceCategory, String key) {
|
||||
final LogMaker logMaker = new LogMaker(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK)
|
||||
.setType(MetricsProto.MetricsEvent.TYPE_ACTION);
|
||||
if (sourceCategory != MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
|
||||
logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, sourceCategory);
|
||||
}
|
||||
if (!TextUtils.isEmpty(key)) {
|
||||
logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME,
|
||||
key);
|
||||
}
|
||||
MetricsLogger.action(logMaker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changed(int category, String key, int value) {
|
||||
final LogMaker logMaker = new LogMaker(
|
||||
MetricsProto.MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE)
|
||||
.setType(MetricsProto.MetricsEvent.TYPE_ACTION);
|
||||
if (category != MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
|
||||
logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, category);
|
||||
}
|
||||
if (!TextUtils.isEmpty(key)) {
|
||||
logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME,
|
||||
key);
|
||||
logMaker.addTaggedData(
|
||||
MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE,
|
||||
value);
|
||||
}
|
||||
MetricsLogger.action(logMaker);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,6 +38,11 @@ public interface LogWriter {
|
||||
*/
|
||||
void clicked(int category, String key);
|
||||
|
||||
/**
|
||||
* Logs a value changed event when user changed item value.
|
||||
*/
|
||||
void changed(int category, String key, int value);
|
||||
|
||||
/**
|
||||
* Logs an user action.
|
||||
*/
|
||||
|
||||
@@ -107,6 +107,19 @@ public class MetricsFeatureProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs a value changed event when user changed item value.
|
||||
*
|
||||
* @param category the target page id
|
||||
* @param key the key id that user clicked
|
||||
* @param value the value that user changed which converted to integer
|
||||
*/
|
||||
public void changed(int category, String key, int value) {
|
||||
for (LogWriter writer : mLoggerWriters) {
|
||||
writer.changed(category, key, value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs a simple action without page id or attribution
|
||||
*
|
||||
|
||||
@@ -35,15 +35,22 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
||||
private static final String LOG_TAG = "SharedPreferencesLogger";
|
||||
|
||||
private final String mTag;
|
||||
private final int mMetricCategory;
|
||||
private final Context mContext;
|
||||
private final MetricsFeatureProvider mMetricsFeature;
|
||||
private final Set<String> mPreferenceKeySet;
|
||||
|
||||
public SharedPreferencesLogger(Context context, String tag,
|
||||
MetricsFeatureProvider metricsFeature) {
|
||||
this(context, tag, metricsFeature, SettingsEnums.PAGE_UNKNOWN);
|
||||
}
|
||||
|
||||
public SharedPreferencesLogger(Context context, String tag,
|
||||
MetricsFeatureProvider metricsFeature, int metricCategory) {
|
||||
mContext = context;
|
||||
mTag = tag;
|
||||
mMetricsFeature = metricsFeature;
|
||||
mMetricCategory = metricCategory;
|
||||
mPreferenceKeySet = new ConcurrentSkipListSet<>();
|
||||
}
|
||||
|
||||
@@ -151,20 +158,15 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
||||
return;
|
||||
}
|
||||
// Pref key exists in set, log its change in metrics.
|
||||
mMetricsFeature.action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
prefKey,
|
||||
intVal);
|
||||
mMetricsFeature.changed(mMetricCategory, key, intVal);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void logPackageName(String key, String value) {
|
||||
final String prefKey = mTag + "/" + key;
|
||||
mMetricsFeature.action(SettingsEnums.PAGE_UNKNOWN,
|
||||
mMetricsFeature.action(mMetricCategory,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
prefKey + ":" + value,
|
||||
key + ":" + value,
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ public class SharedPreferenceLoggerTest {
|
||||
|
||||
private static final String TEST_TAG = "tag";
|
||||
private static final String TEST_KEY = "key";
|
||||
private static final String TEST_TAGGED_KEY = TEST_TAG + "/" + TEST_KEY;
|
||||
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private Context mContext;
|
||||
@@ -65,10 +64,8 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
|
||||
verify(mMetricsFeature, times(6)).action(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE),
|
||||
eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_TAGGED_KEY),
|
||||
verify(mMetricsFeature, times(6)).changed(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_KEY),
|
||||
anyInt());
|
||||
}
|
||||
|
||||
@@ -82,15 +79,11 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putBoolean(TEST_KEY, false);
|
||||
|
||||
|
||||
verify(mMetricsFeature).action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_TAGGED_KEY,
|
||||
verify(mMetricsFeature).changed(SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_KEY,
|
||||
1);
|
||||
verify(mMetricsFeature, times(3)).action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_TAGGED_KEY,
|
||||
verify(mMetricsFeature, times(3)).changed(SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_KEY,
|
||||
0);
|
||||
}
|
||||
|
||||
@@ -103,10 +96,8 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, 2);
|
||||
|
||||
verify(mMetricsFeature, times(4)).action(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE),
|
||||
eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_TAGGED_KEY),
|
||||
verify(mMetricsFeature, times(4)).changed(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_KEY),
|
||||
anyInt());
|
||||
}
|
||||
|
||||
@@ -117,10 +108,8 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, veryBigNumber);
|
||||
|
||||
verify(mMetricsFeature).action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_TAGGED_KEY,
|
||||
verify(mMetricsFeature).changed(SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_KEY,
|
||||
Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
@@ -131,10 +120,8 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, veryNegativeNumber);
|
||||
|
||||
verify(mMetricsFeature).action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_TAGGED_KEY, Integer.MIN_VALUE);
|
||||
verify(mMetricsFeature).changed(SettingsEnums.PAGE_UNKNOWN,
|
||||
TEST_KEY, Integer.MIN_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -146,10 +133,8 @@ public class SharedPreferenceLoggerTest {
|
||||
editor.putFloat(TEST_KEY, 1);
|
||||
editor.putFloat(TEST_KEY, 2);
|
||||
|
||||
verify(mMetricsFeature, times(4)).action(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE),
|
||||
eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_TAGGED_KEY),
|
||||
verify(mMetricsFeature, times(4)).changed(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_KEY),
|
||||
anyInt());
|
||||
}
|
||||
|
||||
@@ -159,7 +144,7 @@ public class SharedPreferenceLoggerTest {
|
||||
verify(mMetricsFeature).action(SettingsEnums.PAGE_UNKNOWN,
|
||||
ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
"tag/key:com.android.settings",
|
||||
"key:com.android.settings",
|
||||
0);
|
||||
}
|
||||
|
||||
@@ -170,10 +155,8 @@ public class SharedPreferenceLoggerTest {
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "62");
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "0");
|
||||
|
||||
verify(mMetricsFeature, times(3)).action(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE),
|
||||
eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_TAGGED_KEY),
|
||||
verify(mMetricsFeature, times(3)).changed(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_KEY),
|
||||
anyInt());
|
||||
}
|
||||
|
||||
@@ -185,10 +168,8 @@ public class SharedPreferenceLoggerTest {
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "4.2");
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "3.0");
|
||||
|
||||
verify(mMetricsFeature, times(0)).action(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE),
|
||||
eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_TAGGED_KEY),
|
||||
verify(mMetricsFeature, times(0)).changed(eq(SettingsEnums.PAGE_UNKNOWN),
|
||||
eq(TEST_KEY),
|
||||
anyInt());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user