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:
Beverly
2019-06-24 15:08:50 -07:00
committed by android-build-merger
2 changed files with 40 additions and 3 deletions

View File

@@ -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,

View File

@@ -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());
}
}