2022-12-23 02:00:37 -08:00
|
|
|
package cash.z.ecc.android.sdk.demoapp.preference.model.entry
|
|
|
|
|
|
|
|
import cash.z.ecc.android.sdk.demoapp.preference.api.PreferenceProvider
|
|
|
|
|
|
|
|
data class IntegerPreferenceDefault(
|
|
|
|
override val key: Key,
|
|
|
|
private val defaultValue: Int
|
|
|
|
) : PreferenceDefault<Int> {
|
2024-01-04 12:21:32 -08:00
|
|
|
override suspend fun getValue(preferenceProvider: PreferenceProvider) =
|
|
|
|
preferenceProvider.getString(key)?.let {
|
|
|
|
try {
|
|
|
|
it.toInt()
|
|
|
|
} catch (e: NumberFormatException) {
|
|
|
|
// TODO [#32]: Log coercion failure instead of just silently returning default
|
|
|
|
// TODO [#32]: https://github.com/zcash/zcash-android-wallet-sdk/issues/32
|
|
|
|
defaultValue
|
|
|
|
}
|
|
|
|
} ?: defaultValue
|
2022-12-23 02:00:37 -08:00
|
|
|
|
2024-01-04 12:21:32 -08:00
|
|
|
override suspend fun putValue(
|
|
|
|
preferenceProvider: PreferenceProvider,
|
|
|
|
newValue: Int
|
|
|
|
) {
|
2022-12-23 02:00:37 -08:00
|
|
|
preferenceProvider.putString(key, newValue.toString())
|
|
|
|
}
|
|
|
|
}
|