diff --git a/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt b/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt index 660d25b..2def240 100644 --- a/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt +++ b/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt @@ -1,3 +1,5 @@ +@file:Suppress("unused") + package com.seannajera.dkouple import android.view.LayoutInflater @@ -10,6 +12,8 @@ class ComponentAdapter(private val componentFactory: ComponentFactory) : private val componentLayouts: ArrayList = arrayListOf() + private var actionWhenComponentsUpdate: ((List, List) -> Unit)? = null + override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): ComponentView<*> { val view = LayoutInflater.from(parent.context) .inflate(layoutId, parent, false) @@ -45,6 +49,14 @@ class ComponentAdapter(private val componentFactory: ComponentFactory) : currentList.forEach { componentLayouts.add(it::class.annotations.filterIsInstance().first().layoutId) } + + actionWhenComponentsUpdate?.invoke(previousComponent, currentComponent) + } + + fun onComponentsUpdated( + actionWhenComponentsUpdate: ((List, List) -> Unit)? + ) { + this.actionWhenComponentsUpdate = actionWhenComponentsUpdate } fun applyComponents(components: List) = submitList(components)