Cleanup PreferenceConfig

This commit is contained in:
topjohnwu
2026-04-02 07:32:15 +00:00
committed by John Wu
parent fd1f403bac
commit d95918dc15
@@ -48,36 +48,18 @@ interface PreferenceConfig {
) = StringProperty(name, default, commit) ) = StringProperty(name, default, commit)
} }
abstract class PreferenceProperty {
fun SharedPreferences.Editor.put(name: String, value: Boolean) = putBoolean(name, value)
fun SharedPreferences.Editor.put(name: String, value: Float) = putFloat(name, value)
fun SharedPreferences.Editor.put(name: String, value: Int) = putInt(name, value)
fun SharedPreferences.Editor.put(name: String, value: Long) = putLong(name, value)
fun SharedPreferences.Editor.put(name: String, value: String) = putString(name, value)
fun SharedPreferences.Editor.put(name: String, value: Set<String>) = putStringSet(name, value)
fun SharedPreferences.get(name: String, value: Boolean) = getBoolean(name, value)
fun SharedPreferences.get(name: String, value: Float) = getFloat(name, value)
fun SharedPreferences.get(name: String, value: Int) = getInt(name, value)
fun SharedPreferences.get(name: String, value: Long) = getLong(name, value)
fun SharedPreferences.get(name: String, value: String) = getString(name, value) ?: value
fun SharedPreferences.get(name: String, value: Set<String>) = getStringSet(name, value) ?: value
}
class BooleanProperty( class BooleanProperty(
private val name: String, private val name: String,
private val default: Boolean, private val default: Boolean,
private val commit: Boolean private val commit: Boolean
) : PreferenceProperty(), ReadWriteProperty<PreferenceConfig, Boolean> { ) : ReadWriteProperty<PreferenceConfig, Boolean> {
override operator fun getValue( override operator fun getValue(
thisRef: PreferenceConfig, thisRef: PreferenceConfig,
property: KProperty<*> property: KProperty<*>
): Boolean { ): Boolean {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
return thisRef.prefs.get(prefName, default) return thisRef.prefs.getBoolean(prefName, default)
} }
override operator fun setValue( override operator fun setValue(
@@ -86,7 +68,7 @@ class BooleanProperty(
value: Boolean value: Boolean
) { ) {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
thisRef.prefs.edit(commit) { put(prefName, value) } thisRef.prefs.edit(commit) { putBoolean(prefName, value) }
} }
} }
@@ -94,14 +76,14 @@ class IntProperty(
private val name: String, private val name: String,
private val default: Int, private val default: Int,
private val commit: Boolean private val commit: Boolean
) : PreferenceProperty(), ReadWriteProperty<PreferenceConfig, Int> { ) : ReadWriteProperty<PreferenceConfig, Int> {
override operator fun getValue( override operator fun getValue(
thisRef: PreferenceConfig, thisRef: PreferenceConfig,
property: KProperty<*> property: KProperty<*>
): Int { ): Int {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
return thisRef.prefs.get(prefName, default) return thisRef.prefs.getInt(prefName, default)
} }
override operator fun setValue( override operator fun setValue(
@@ -110,7 +92,7 @@ class IntProperty(
value: Int value: Int
) { ) {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
thisRef.prefs.edit(commit) { put(prefName, value) } thisRef.prefs.edit(commit) { putInt(prefName, value) }
} }
} }
@@ -118,14 +100,14 @@ class StringProperty(
private val name: String, private val name: String,
private val default: String, private val default: String,
private val commit: Boolean private val commit: Boolean
) : PreferenceProperty(), ReadWriteProperty<PreferenceConfig, String> { ) : ReadWriteProperty<PreferenceConfig, String> {
override operator fun getValue( override operator fun getValue(
thisRef: PreferenceConfig, thisRef: PreferenceConfig,
property: KProperty<*> property: KProperty<*>
): String { ): String {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
return thisRef.prefs.get(prefName, default) return thisRef.prefs.getString(prefName, default) ?: default
} }
override operator fun setValue( override operator fun setValue(
@@ -134,6 +116,6 @@ class StringProperty(
value: String value: String
) { ) {
val prefName = name.ifBlank { property.name } val prefName = name.ifBlank { property.name }
thisRef.prefs.edit(commit) { put(prefName, value) } thisRef.prefs.edit(commit) { putString(prefName, value) }
} }
} }