|
|
@ -12,75 +12,52 @@ data class BackupOptions(
|
|
|
|
val history: Boolean = true,
|
|
|
|
val history: Boolean = true,
|
|
|
|
val appSettings: Boolean = true,
|
|
|
|
val appSettings: Boolean = true,
|
|
|
|
val sourceSettings: Boolean = true,
|
|
|
|
val sourceSettings: Boolean = true,
|
|
|
|
|
|
|
|
val privateSettings: Boolean = false,
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
fun toBooleanArray() = booleanArrayOf(
|
|
|
|
|
|
|
|
libraryEntries,
|
|
|
|
|
|
|
|
categories,
|
|
|
|
|
|
|
|
chapters,
|
|
|
|
|
|
|
|
tracking,
|
|
|
|
|
|
|
|
history,
|
|
|
|
|
|
|
|
appSettings,
|
|
|
|
|
|
|
|
sourceSettings,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
companion object {
|
|
|
|
val AutomaticDefaults = BackupOptions(
|
|
|
|
val entries = persistentListOf(
|
|
|
|
libraryEntries = true,
|
|
|
|
Entry(
|
|
|
|
categories = true,
|
|
|
|
|
|
|
|
chapters = true,
|
|
|
|
|
|
|
|
tracking = true,
|
|
|
|
|
|
|
|
history = true,
|
|
|
|
|
|
|
|
appSettings = true,
|
|
|
|
|
|
|
|
sourceSettings = true,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun fromBooleanArray(booleanArray: BooleanArray) = BackupOptions(
|
|
|
|
|
|
|
|
libraryEntries = booleanArray[0],
|
|
|
|
|
|
|
|
categories = booleanArray[1],
|
|
|
|
|
|
|
|
chapters = booleanArray[2],
|
|
|
|
|
|
|
|
tracking = booleanArray[3],
|
|
|
|
|
|
|
|
history = booleanArray[4],
|
|
|
|
|
|
|
|
appSettings = booleanArray[5],
|
|
|
|
|
|
|
|
sourceSettings = booleanArray[6],
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val entries = persistentListOf<BackupOptionEntry>(
|
|
|
|
|
|
|
|
BackupOptionEntry(
|
|
|
|
|
|
|
|
label = MR.strings.categories,
|
|
|
|
label = MR.strings.categories,
|
|
|
|
getter = BackupOptions::categories,
|
|
|
|
getter = BackupOptions::categories,
|
|
|
|
setter = { options, enabled -> options.copy(categories = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(categories = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
BackupOptionEntry(
|
|
|
|
Entry(
|
|
|
|
label = MR.strings.chapters,
|
|
|
|
label = MR.strings.chapters,
|
|
|
|
getter = BackupOptions::chapters,
|
|
|
|
getter = BackupOptions::chapters,
|
|
|
|
setter = { options, enabled -> options.copy(chapters = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(chapters = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
BackupOptionEntry(
|
|
|
|
Entry(
|
|
|
|
label = MR.strings.track,
|
|
|
|
label = MR.strings.track,
|
|
|
|
getter = BackupOptions::tracking,
|
|
|
|
getter = BackupOptions::tracking,
|
|
|
|
setter = { options, enabled -> options.copy(tracking = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(tracking = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
BackupOptionEntry(
|
|
|
|
Entry(
|
|
|
|
label = MR.strings.history,
|
|
|
|
label = MR.strings.history,
|
|
|
|
getter = BackupOptions::history,
|
|
|
|
getter = BackupOptions::history,
|
|
|
|
setter = { options, enabled -> options.copy(history = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(history = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
BackupOptionEntry(
|
|
|
|
Entry(
|
|
|
|
label = MR.strings.app_settings,
|
|
|
|
label = MR.strings.app_settings,
|
|
|
|
getter = BackupOptions::appSettings,
|
|
|
|
getter = BackupOptions::appSettings,
|
|
|
|
setter = { options, enabled -> options.copy(appSettings = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(appSettings = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
BackupOptionEntry(
|
|
|
|
Entry(
|
|
|
|
label = MR.strings.source_settings,
|
|
|
|
label = MR.strings.source_settings,
|
|
|
|
getter = BackupOptions::sourceSettings,
|
|
|
|
getter = BackupOptions::sourceSettings,
|
|
|
|
setter = { options, enabled -> options.copy(sourceSettings = enabled) },
|
|
|
|
setter = { options, enabled -> options.copy(sourceSettings = enabled) },
|
|
|
|
),
|
|
|
|
),
|
|
|
|
|
|
|
|
Entry(
|
|
|
|
|
|
|
|
label = MR.strings.private_settings,
|
|
|
|
|
|
|
|
getter = BackupOptions::privateSettings,
|
|
|
|
|
|
|
|
setter = { options, enabled -> options.copy(privateSettings = enabled) },
|
|
|
|
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data class BackupOptionEntry(
|
|
|
|
data class Entry(
|
|
|
|
val label: StringResource,
|
|
|
|
val label: StringResource,
|
|
|
|
val getter: (BackupOptions) -> Boolean,
|
|
|
|
val getter: (BackupOptions) -> Boolean,
|
|
|
|
val setter: (BackupOptions, Boolean) -> BackupOptions,
|
|
|
|
val setter: (BackupOptions, Boolean) -> BackupOptions,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|