2021-10-19 05:02:15 -07:00
|
|
|
package co.electriccoin.zcash.preference.model.entry
|
|
|
|
|
|
|
|
import co.electriccoin.zcash.preference.api.PreferenceProvider
|
|
|
|
|
|
|
|
data class BooleanPreferenceDefault(
|
2023-02-19 06:03:30 -08:00
|
|
|
override val key: PreferenceKey,
|
2021-10-19 05:02:15 -07:00
|
|
|
private val defaultValue: Boolean
|
|
|
|
) : PreferenceDefault<Boolean> {
|
|
|
|
|
|
|
|
@Suppress("SwallowedException")
|
|
|
|
override suspend fun getValue(preferenceProvider: PreferenceProvider) = preferenceProvider.getString(key)?.let {
|
|
|
|
try {
|
|
|
|
it.toBooleanStrict()
|
|
|
|
} catch (e: IllegalArgumentException) {
|
|
|
|
// [TODO #32]: Log coercion failure instead of just silently returning default
|
|
|
|
defaultValue
|
|
|
|
}
|
|
|
|
} ?: defaultValue
|
2021-11-12 04:09:30 -08:00
|
|
|
|
|
|
|
override suspend fun putValue(preferenceProvider: PreferenceProvider, newValue: Boolean) {
|
|
|
|
preferenceProvider.putString(key, newValue.toString())
|
|
|
|
}
|
2021-10-19 05:02:15 -07:00
|
|
|
}
|