From 9f1ec2be7ef5b33200dc6f2d0817bbbc05c0208d Mon Sep 17 00:00:00 2001 From: tarsin Date: Thu, 1 Jun 2023 21:05:22 +0800 Subject: [PATCH] Inline intFrom --- app/src/main/java/com/hippo/ehviewer/Settings.kt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.kt b/app/src/main/java/com/hippo/ehviewer/Settings.kt index a4d4748ea..21a3e64fa 100755 --- a/app/src/main/java/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/java/com/hippo/ehviewer/Settings.kt @@ -28,7 +28,6 @@ import com.hippo.unifile.UniFile import splitties.experimental.ExperimentalSplittiesApi import splitties.init.appCtx import splitties.preferences.DefaultPreferences -import splitties.preferences.StringPref import java.util.Locale import kotlin.reflect.KProperty @@ -340,16 +339,14 @@ object Settings : DefaultPreferences() { var dohUrl by stringPref("doh_url", "") var lastDawnDay by longPref("last_dawn_day", 0) - private fun intFromStrPref(key: String, defValue: Int) = intFrom(defValue) { stringPref(key, it) } + private fun intFromStrPref(key: String, defValue: Int) = object : Delegate { + private var _value by stringPref(key, defValue.toString()) + override fun getValue(thisRef: Any?, prop: KProperty<*>?) = _value.toIntOrNull() ?: defValue + override fun setValue(thisRef: Any?, prop: KProperty<*>?, value: Int) { _value = value.toString() } + } } interface Delegate { operator fun getValue(thisRef: Any?, prop: KProperty<*>?): R operator fun setValue(thisRef: Any?, prop: KProperty<*>?, value: R) } - -private inline fun intFrom(defValue: Int, crossinline getter: (String) -> StringPref) = object : Delegate { - private var _value by getter(defValue.toString()) - override fun getValue(thisRef: Any?, prop: KProperty<*>?) = _value.toIntOrNull() ?: defValue - override fun setValue(thisRef: Any?, prop: KProperty<*>?, value: Int) { _value = value.toString() } -}