From 0df43d971f1eb18a0e6ce7fa56fab11dfba154b8 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Fri, 23 Jun 2017 17:31:58 -0700 Subject: Improve kpref text --- .../src/main/kotlin/ca/allanwang/kau/kpref/KPrefActivity.kt | 2 +- library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefBinder.kt | 1 + .../main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemBase.kt | 2 +- .../main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemCore.kt | 11 ++++++++++- .../src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefText.kt | 11 ++++++++++- 5 files changed, 23 insertions(+), 4 deletions(-) (limited to 'library') diff --git a/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefActivity.kt b/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefActivity.kt index 77bceaf..8ec95ee 100644 --- a/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefActivity.kt +++ b/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefActivity.kt @@ -146,7 +146,7 @@ abstract class KPrefActivity : AppCompatActivity(), KPrefActivityContract { else index.forEach { adapter.notifyItemChanged(it) } } - fun reloadByTitle(@StringRes vararg title: Int) { + override fun reloadByTitle(@StringRes vararg title: Int) { if (title.isEmpty()) return adapter.adapterItems.forEachIndexed { index, item -> if (title.any { item.core.titleRes == it }) diff --git a/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefBinder.kt b/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefBinder.kt index 4904194..472c538 100644 --- a/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefBinder.kt +++ b/library/src/main/kotlin/ca/allanwang/kau/kpref/KPrefBinder.kt @@ -47,6 +47,7 @@ class CoreAttributeBuilder : CoreAttributeContract { interface KPrefActivityContract { fun showNextPrefs(@StringRes toolbarTitleRes:Int, builder: KPrefAdapterBuilder.() -> Unit) fun showPrevPrefs() + fun reloadByTitle(@StringRes vararg title: Int) } diff --git a/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemBase.kt b/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemBase.kt index 949ae59..a0718a0 100644 --- a/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemBase.kt +++ b/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemBase.kt @@ -15,7 +15,7 @@ import ca.allanwang.kau.utils.resolveDrawable abstract class KPrefItemBase(val base: BaseContract) : KPrefItemCore(base) { - var pref: T + open var pref: T get() = base.getter.invoke() set(value) { base.setter.invoke(value) diff --git a/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemCore.kt b/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemCore.kt index faf451f..9c0ad79 100644 --- a/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemCore.kt +++ b/library/src/main/kotlin/ca/allanwang/kau/kpref/items/KPrefItemCore.kt @@ -74,15 +74,24 @@ abstract class KPrefItemCore(val core: CoreContract) : AbstractItem(val builder: KPrefTextContract) : KPrefItemBase(builder) { + /** + * Automatically reload on set + */ + override var pref: T + get() = base.getter.invoke() + set(value) { + base.setter.invoke(value) + builder.reloadSelf() + } + override fun defaultOnClick(itemView: View, innerContent: View?): Boolean { itemView.context.toast("No click function set") return true -- cgit v1.2.3