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:
parent
02539ba6f9
commit
0857d96f7a
@ -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),
|
||||
)
|
||||
|
@ -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())
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user