private static void importGlobalSettings(Storage storage, StorageEditor editor, int contentVersion, ImportedSettings settings) { // Validate global settings Map<String, Object> validatedSettings = GlobalSettings.validate(contentVersion, settings.settings); // Upgrade global settings to current content version if (contentVersion != Settings.VERSION) { GlobalSettings.upgrade(contentVersion, validatedSettings); } // Convert global settings to the string representation used in preference storage Map<String, String> stringSettings = GlobalSettings.convert(validatedSettings); // Use current global settings as base and overwrite with validated settings read from the import file. Map<String, String> mergedSettings = new HashMap<>(GlobalSettings.getGlobalSettings(storage)); mergedSettings.putAll(stringSettings); for (Map.Entry<String, String> setting : mergedSettings.entrySet()) { String key = setting.getKey(); String value = setting.getValue(); putString(editor, key, value); } }
private static void importFolder(StorageEditor editor, int contentVersion, String uuid, ImportedFolder folder, boolean overwrite, Preferences prefs) { // Validate folder settings Map<String, Object> validatedSettings = FolderSettings.validate(contentVersion, folder.settings.settings, !overwrite); // Upgrade folder settings to current content version if (contentVersion != Settings.VERSION) { FolderSettings.upgrade(contentVersion, validatedSettings); } // Convert folder settings to the string representation used in preference storage Map<String, String> stringSettings = FolderSettings.convert(validatedSettings); // Merge folder settings if necessary Map<String, String> writeSettings; if (overwrite) { writeSettings = FolderSettings.getFolderSettings(prefs.getStorage(), uuid, folder.name); writeSettings.putAll(stringSettings); } else { writeSettings = stringSettings; } // Write folder settings String prefix = uuid + "." + folder.name + "."; for (Map.Entry<String, String> setting : writeSettings.entrySet()) { String key = prefix + setting.getKey(); String value = setting.getValue(); putString(editor, key, value); } }
putString(editor, accountKeyPrefix + AccountPreferenceSerializer.IDENTITY_NAME_KEY + identitySuffix, identityName); putString(editor, accountKeyPrefix + AccountPreferenceSerializer.IDENTITY_EMAIL_KEY + identitySuffix, identity.email); putString(editor, accountKeyPrefix + AccountPreferenceSerializer.IDENTITY_DESCRIPTION_KEY + identitySuffix, identityDescription); String key = accountKeyPrefix + setting.getKey() + identitySuffix; String value = setting.getValue(); putString(editor, key, value);
putString(editor, accountKeyPrefix + AccountPreferenceSerializer.ACCOUNT_DESCRIPTION_KEY, accountName); BackendManager backendManager = DI.get(BackendManager.class); String storeUri = backendManager.createStoreUri(incoming); putString(editor, accountKeyPrefix + AccountPreferenceSerializer.STORE_URI_KEY, Base64.encode(storeUri)); putString(editor, accountKeyPrefix + AccountPreferenceSerializer.TRANSPORT_URI_KEY, Base64.encode(transportUri)); String key = accountKeyPrefix + setting.getKey(); String value = setting.getValue(); putString(editor, key, value); putString(editor, accountKeyPrefix + "accountNumber", Integer.toString(newAccountNumber));