private static <T> void writeKeyAndDefaultValueFromSetting(XmlSerializer serializer, String key, SettingsDescription<T> setting) throws IllegalArgumentException, IllegalStateException, IOException { T value = setting.getDefaultValue(); String outputValue = setting.toPrettyString(value); writeKeyAndPrettyValueFromSetting(serializer, key, outputValue); }
private static <T> void writeKeyAndPrettyValueFromSetting(XmlSerializer serializer, String key, SettingsDescription<T> setting, String valueString) throws IllegalArgumentException, IllegalStateException, IOException, InvalidSettingValueException { T value = setting.fromString(valueString); String outputValue = setting.toPrettyString(value); writeKeyAndPrettyValueFromSetting(serializer, key, outputValue); }
private static void writeSettings(XmlSerializer serializer, Map<String, Object> prefs) throws IOException { for (Entry<String, TreeMap<Integer, SettingsDescription>> versionedSetting : GlobalSettings.SETTINGS.entrySet()) { String key = versionedSetting.getKey(); String valueString = (String) prefs.get(key); TreeMap<Integer, SettingsDescription> versions = versionedSetting.getValue(); Integer highestVersion = versions.lastKey(); SettingsDescription setting = versions.get(highestVersion); if (setting == null) { // Setting was removed. continue; } if (valueString != null) { try { writeKeyAndPrettyValueFromSetting(serializer, key, setting, valueString); } catch (InvalidSettingValueException e) { Timber.w("Global setting \"%s\" has invalid value \"%s\" in preference storage. " + "This shouldn't happen!", key, valueString); } } else { Timber.d("Couldn't find key \"%s\" in preference storage. Using default value.", key); writeKeyAndDefaultValueFromSetting(serializer, key, setting); } } }
writeKeyAndPrettyValueFromSetting(serializer, folderKey, setting, valueString); } catch (InvalidSettingValueException e) { Timber.w("Folder setting \"%s\" has invalid value \"%s\" in preference storage. " +
writeKeyAndPrettyValueFromSetting(serializer, identityKey, setting, valueString); } catch (InvalidSettingValueException e) { Timber.w("Identity setting \"%s\" has invalid value \"%s\" in preference storage. " +
serializer.startTag(null, EXTRA_ELEMENT); for (Entry<String, String> extra : extras.entrySet()) { writeKeyAndPrettyValueFromSetting(serializer, extra.getKey(), extra.getValue()); serializer.startTag(null, EXTRA_ELEMENT); for (Entry<String, String> extra : extras.entrySet()) { writeKeyAndPrettyValueFromSetting(serializer, extra.getKey(), extra.getValue()); writeKeyAndPrettyValueFromSetting(serializer, keyPart, setting, valueString); } catch (InvalidSettingValueException e) { Timber.w("Account setting \"%s\" (%s) has invalid value \"%s\" in preference storage. " +