refactor(komga): add backing fields for server settings

This commit is contained in:
Gauthier Roebroeck 2023-10-09 13:54:04 +08:00
parent 7057c28d2f
commit e35d468388

View file

@ -10,36 +10,40 @@ import kotlin.time.Duration.Companion.days
class KomgaSettingsProvider(
private val serverSettingsDao: ServerSettingsDao,
) {
var deleteEmptyCollections: Boolean
get() =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_COLLECTIONS.name, Boolean::class.java) ?: false
set(value) =
var deleteEmptyCollections: Boolean =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_COLLECTIONS.name, Boolean::class.java) ?: false
set(value) {
serverSettingsDao.saveSetting(Settings.DELETE_EMPTY_COLLECTIONS.name, value)
field = value
}
var deleteEmptyReadLists: Boolean
get() =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_READLISTS.name, Boolean::class.java) ?: false
set(value) =
var deleteEmptyReadLists: Boolean =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_READLISTS.name, Boolean::class.java) ?: false
set(value) {
serverSettingsDao.saveSetting(Settings.DELETE_EMPTY_READLISTS.name, value)
field = value
}
var rememberMeKey: String
get() =
serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_KEY.name, String::class.java)
?: getRandomRememberMeKey().also { serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, it) }
set(value) =
var rememberMeKey: String =
serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_KEY.name, String::class.java)
?: getRandomRememberMeKey().also { rememberMeKey = it }
set(value) {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, value)
field = value
}
fun renewRememberMeKey() {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, getRandomRememberMeKey())
rememberMeKey = getRandomRememberMeKey()
}
private fun getRandomRememberMeKey() = RandomStringUtils.randomAlphanumeric(32)
var rememberMeDuration: Duration
get() =
(serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_DURATION.name, Int::class.java) ?: 365).days
set(value) =
var rememberMeDuration: Duration =
(serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_DURATION.name, Int::class.java) ?: 365).days
set(value) {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_DURATION.name, value.inWholeDays.toInt())
field = value
}
}
private enum class Settings {