0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-20 04:02:14 +02:00

Extract code to upgrade folder settings

This commit is contained in:
cketti 2024-06-12 19:29:58 +02:00
parent 3f56ca27ff
commit 118eff23e4
2 changed files with 17 additions and 8 deletions

View File

@ -0,0 +1,12 @@
package com.fsck.k9.preferences
internal class FolderSettingsUpgrader {
fun upgrade(contentVersion: Int, folder: ValidatedSettings.Folder): ValidatedSettings.Folder {
val settings = folder.settings.toMutableMap()
if (contentVersion != Settings.VERSION) {
FolderSettingsDescriptions.upgrade(contentVersion, settings)
}
return folder.copy(settings = settings.toMap())
}
}

View File

@ -42,6 +42,8 @@ class SettingsImporter internal constructor(
private val folderSettingsValidator = FolderSettingsValidator()
private val generalSettingsUpgrader = GeneralSettingsUpgrader()
private val folderSettingsUpgrader = FolderSettingsUpgrader()
private val generalSettingsWriter = GeneralSettingsWriter(preferences)
/**
@ -368,18 +370,13 @@ class SettingsImporter internal constructor(
) {
val validatedFolder = folderSettingsValidator.validate(contentVersion, folder)
val validatedSettings = validatedFolder.settings.toMutableMap()
// Upgrade folder settings to current content version
if (contentVersion != Settings.VERSION) {
FolderSettingsDescriptions.upgrade(contentVersion, validatedSettings)
}
val currentFolder = folderSettingsUpgrader.upgrade(contentVersion, validatedFolder)
// Convert folder settings to the string representation used in preference storage
val stringSettings = FolderSettingsDescriptions.convert(validatedSettings)
val stringSettings = FolderSettingsDescriptions.convert(currentFolder.settings)
// Write folder settings
val prefix = uuid + "." + folder.name + "."
val prefix = uuid + "." + currentFolder.name + "."
for ((folderKey, value) in stringSettings) {
val key = prefix + folderKey
putString(editor, key, value)