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:
parent
3f56ca27ff
commit
118eff23e4
@ -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())
|
||||
}
|
||||
}
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user