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

Extract ServerSettingsUpgrader

This commit is contained in:
cketti 2024-06-17 17:00:53 +02:00
parent 02539ba6f9
commit 0857d96f7a
2 changed files with 25 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package com.fsck.k9.preferences
internal class AccountSettingsUpgrader {
private val identitySettingsUpgrader = IdentitySettingsUpgrader()
private val folderSettingsUpgrader = FolderSettingsUpgrader()
private val serverSettingsUpgrader = ServerSettingsUpgrader()
fun upgrade(contentVersion: Int, account: ValidatedSettings.Account): ValidatedSettings.Account {
val validatedSettings = account.settings.toMutableMap()
@ -12,6 +13,8 @@ internal class AccountSettingsUpgrader {
return account.copy(
settings = validatedSettings.toMap(),
incoming = serverSettingsUpgrader.upgrade(contentVersion, account.incoming),
outgoing = serverSettingsUpgrader.upgrade(contentVersion, account.outgoing),
identities = upgradeIdentities(contentVersion, account.identities),
folders = upgradeFolders(contentVersion, account.folders),
)

View File

@ -0,0 +1,22 @@
package com.fsck.k9.preferences
internal class ServerSettingsUpgrader(
private val serverSettingsDescriptions: ServerSettingsDescriptions = ServerSettingsDescriptions(),
) {
fun upgrade(contentVersion: Int, server: ValidatedSettings.Server): ValidatedSettings.Server {
if (contentVersion == Settings.VERSION) {
return server
}
val settings = server.settings.toMutableMap()
Settings.upgrade(
contentVersion,
serverSettingsDescriptions.upgraders,
serverSettingsDescriptions.settings,
settings,
)
return server.copy(settings = settings.toMap())
}
}