Merge "Log Preference changes when value is a String" into qt-r1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c7f3fec1c2
@@ -102,7 +102,8 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
|||||||
OnSharedPreferenceChangeListener listener) {
|
OnSharedPreferenceChangeListener listener) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void logValue(String key, Object value) {
|
@VisibleForTesting
|
||||||
|
protected void logValue(String key, Object value) {
|
||||||
logValue(key, value, false /* forceLog */);
|
logValue(key, value, false /* forceLog */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,11 +139,18 @@ public class SharedPreferencesLogger implements SharedPreferences {
|
|||||||
} else {
|
} else {
|
||||||
intVal = (int) floatValue;
|
intVal = (int) floatValue;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (value instanceof String) {
|
||||||
Log.w(LOG_TAG, "Tried to log unloggable object" + value);
|
try {
|
||||||
|
intVal = Integer.parseInt((String) value);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
Log.w(LOG_TAG, "Tried to log unloggable object=" + value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Pref key exists in set, log it's change in metrics.
|
} else {
|
||||||
|
Log.w(LOG_TAG, "Tried to log unloggable object=" + value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Pref key exists in set, log its change in metrics.
|
||||||
mMetricsFeature.action(SettingsEnums.PAGE_UNKNOWN,
|
mMetricsFeature.action(SettingsEnums.PAGE_UNKNOWN,
|
||||||
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
|
||||||
SettingsEnums.PAGE_UNKNOWN,
|
SettingsEnums.PAGE_UNKNOWN,
|
||||||
|
|||||||
@@ -162,4 +162,33 @@ public class SharedPreferenceLoggerTest {
|
|||||||
"tag/key:com.android.settings",
|
"tag/key:com.android.settings",
|
||||||
0);
|
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