diff options
author | Allan Wang <me@allanwang.ca> | 2019-09-14 13:05:03 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2019-09-14 13:05:03 -0700 |
commit | 3f144bdbeeda6057d244b6a6eabff7b1f73d32ba (patch) | |
tree | fe892afce47d5e053daea29ece7d0ce82b3c4adc /fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt | |
parent | c6140c1008b042376bab328780f1686b75a9f839 (diff) | |
download | kau-3f144bdbeeda6057d244b6a6eabff7b1f73d32ba.tar.gz kau-3f144bdbeeda6057d244b6a6eabff7b1f73d32ba.tar.bz2 kau-3f144bdbeeda6057d244b6a6eabff7b1f73d32ba.zip |
Add initial binding
Diffstat (limited to 'fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt')
-rw-r--r-- | fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt b/fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt new file mode 100644 index 0000000..2270b5d --- /dev/null +++ b/fastadapter-databinding/src/main/kotlin/ca/allanwang/fastadapter/databinding/FastBindingAdapter.kt @@ -0,0 +1,45 @@ +package ca.allanwang.fastadapter.databinding + +import com.mikepenz.fastadapter.FastAdapter +import com.mikepenz.fastadapter.IAdapter +import com.mikepenz.fastadapter.IItemAdapter +import com.mikepenz.fastadapter.adapters.ItemAdapter +import com.mikepenz.fastadapter.diff.FastAdapterDiffUtil + +class FastBindingAdapter private constructor(private val adapter: ItemAdapter<GenericBindingItem>) : + FastAdapter<GenericBindingItem>(), + IItemAdapter<GenericBindingItem, GenericBindingItem> by adapter { + + constructor() : this(ItemAdapter()) + + var lastClearTime: Long = -1 + + init { + super.addAdapter(0, adapter) + } + + override fun clear(): FastBindingAdapter { + if (itemCount != 0) { + adapter.clear() + lastClearTime = System.currentTimeMillis() + } + return this + } + + override fun <A : IAdapter<GenericBindingItem>> addAdapter( + index: Int, + adapter: A + ): FastAdapter<GenericBindingItem> { + throw IllegalArgumentException("FastBindingAdapter only allows one adapter") + } + + fun setWithDiff(items: List<GenericBindingItem>, detectMoves: Boolean = true) { + FastAdapterDiffUtil.set( + adapter, + items, + null, + detectMoves + ) + } + +}
\ No newline at end of file |