SelectionItemViewHolder вынесен в отдельный файл

This commit is contained in:
AnastasiyaK97 2022-08-01 12:42:00 +03:00 committed by Anastasiya97
parent 719252a3e1
commit d8dc470805
2 changed files with 31 additions and 28 deletions

View File

@ -0,0 +1,31 @@
package ru.touchin.roboswag.base_filters.select_list_item.adapter
import android.view.View
import ru.touchin.roboswag.base_filters.databinding.SelectionItemBinding
import ru.touchin.roboswag.base_filters.select_list_item.ListSelectionView
import ru.touchin.roboswag.base_filters.select_list_item.model.BaseSelectionItem
class SelectionItemViewHolder<ItemType: BaseSelectionItem>(private val binding: SelectionItemBinding,
private val onItemSelectAction: (ItemType) -> Unit,
private val selectionType: ListSelectionView.SelectionType
) : BaseSelectionViewHolder<ItemType>(binding.root) {
override fun bind(item: ItemType) {
binding.run {
val checkListener = View.OnClickListener {
itemRadiobutton.isChecked = true
onItemSelectAction.invoke(item.copyWithSelection(isSelected = when (selectionType) {
ListSelectionView.SelectionType.SINGLE_SELECT -> true
else -> !item.isSelected
}))
}
itemTitle.text = item.title
root.setOnClickListener(checkListener)
itemRadiobutton.setOnClickListener(checkListener)
itemRadiobutton.isChecked = item.isSelected
}
}
}

View File

@ -1,8 +1,6 @@
package ru.touchin.roboswag.base_filters.select_list_item.adapter
import android.view.View
import android.view.ViewGroup
import ru.touchin.roboswag.base_filters.databinding.SelectionItemBinding
import ru.touchin.roboswag.base_filters.select_list_item.ListSelectionView.SelectionType
import ru.touchin.roboswag.base_filters.select_list_item.model.BaseSelectionItem
import ru.touchin.roboswag.recyclerview_adapters.adapters.ItemAdapterDelegate
@ -28,29 +26,3 @@ class SheetSelectionDelegate<ItemType>(
) = holder.bind(item)
}
class SelectionItemViewHolder<ItemType: BaseSelectionItem>(private val binding: SelectionItemBinding,
private val onItemSelectAction: (ItemType) -> Unit,
private val selectionType: SelectionType
) : BaseSelectionViewHolder<ItemType>(binding.root) {
override fun bind(item: ItemType) {
binding.run {
val checkListener = View.OnClickListener {
itemRadiobutton.isChecked = true
onItemSelectAction.invoke(item.copyWithSelection(isSelected = when (selectionType) {
SelectionType.SINGLE_SELECT -> true
else -> !item.isSelected
}))
}
itemTitle.text = item.title
root.setOnClickListener(checkListener)
itemRadiobutton.setOnClickListener(checkListener)
itemRadiobutton.isChecked = item.isSelected
}
}
}