Merge "Log Preference changes when value is a String" into qt-r1-dev am: c7f3fec1c2
am: 2fd1a1043b
Change-Id: Ib868dfdb90c95cd458d01873c044a1e6ef6d0fa5
This commit is contained in:
@@ -102,7 +102,8 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
||||
OnSharedPreferenceChangeListener listener) {
|
||||
}
|
||||
|
||||
private void logValue(String key, Object value) {
|
||||
@VisibleForTesting
|
||||
protected void logValue(String key, Object value) {
|
||||
logValue(key, value, false /* forceLog */);
|
||||
}
|
||||
|
||||
@@ -138,11 +139,18 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
||||
} else {
|
||||
intVal = (int) floatValue;
|
||||
}
|
||||
} else if (value instanceof String) {
|
||||
try {
|
||||
intVal = Integer.parseInt((String) value);
|
||||
} catch (NumberFormatException e) {
|
||||
Log.w(LOG_TAG, "Tried to log unloggable object=" + value);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
Log.w(LOG_TAG, "Tried to log unloggable object" + value);
|
||||
Log.w(LOG_TAG, "Tried to log unloggable object=" + value);
|
||||
return;
|
||||
}
|
||||
// Pref key exists in set, log it's change in metrics.
|
||||
// Pref key exists in set, log its change in metrics.
|
||||
mMetricsFeature.action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||
SettingsEnums.PAGE_UNKNOWN,
|
||||
|
||||
@@ -162,4 +162,33 @@ public class SharedPreferenceLoggerTest {
|
||||
"tag/key:com.android.settings",
|
||||
0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putString_shouldNotLogInitialPut() {
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "1");
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "2");
|
||||
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),
|
||||
anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putString_shouldNotLogAnyNonIntegers() {
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "string");
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "not an int");
|
||||
mSharedPrefLogger.logValue(TEST_KEY, "1.234f");
|
||||
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),
|
||||
anyInt());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user