diff --git a/recyclerview-adapters/src/main/java/ru/touchin/adapters/SimpleDataObserver.kt b/recyclerview-adapters/src/main/java/ru/touchin/adapters/SimpleDataObserver.kt new file mode 100644 index 0000000..97fc0c6 --- /dev/null +++ b/recyclerview-adapters/src/main/java/ru/touchin/adapters/SimpleDataObserver.kt @@ -0,0 +1,23 @@ +package ru.touchin.adapters + +import androidx.recyclerview.widget.RecyclerView + +abstract class SimpleDataObserver : RecyclerView.AdapterDataObserver() { + + abstract fun onChange() + + override fun onItemRangeChanged(positionStart: Int, itemCount: Int) = onChange() + + override fun onItemRangeInserted(positionStart: Int, itemCount: Int) = onChange() + + override fun onItemRangeRemoved(positionStart: Int, itemCount: Int) = onChange() + + override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int) = onChange() + +} + +fun RecyclerView.Adapter.onDataUpdatedAndDrawn(onChanged: () -> Unit) = registerAdapterDataObserver( + object : SimpleDataObserver() { + override fun onChange() = onChanged() + } +)