Skip to content

Commit

Permalink
[MOD] #308 생성자에서 데이터 목록을 받도록 멀티뷰 어댑터 코드 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
leeeha committed Jan 16, 2024
1 parent 2ac852f commit 07873d5
Showing 1 changed file with 4 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import com.runnect.runnect.domain.entity.DiscoverMultiViewItem.RecommendCourse
import com.runnect.runnect.presentation.discover.model.EditableDiscoverCourse

class DiscoverMultiViewAdapter(
multiViewItems: List<List<DiscoverMultiViewItem>>,
private val onHeartButtonClick: (Int, Boolean) -> Unit,
private val onCourseItemClick: (Int) -> Unit,
private val handleVisitorMode: () -> Unit,
) : RecyclerView.Adapter<DiscoverMultiViewHolder>() {
private val multiViewHolderFactory by lazy { DiscoverMultiViewHolderFactory() }
private val currentList = mutableListOf<MutableList<DiscoverMultiViewItem>>()
private val currentList: MutableList<MutableList<DiscoverMultiViewItem>> =
multiViewItems.map { it.toMutableList() }.toMutableList()

override fun getItemViewType(position: Int): Int {
if (currentList.isEmpty()) return DiscoverMultiViewType.MARATHON.ordinal
val multiViewItem = currentList[position].first()
return multiViewItem.getMultiViewType().ordinal
}
Expand All @@ -26,16 +27,14 @@ class DiscoverMultiViewAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DiscoverMultiViewHolder {
return multiViewHolderFactory.createMultiViewHolder(
parent = parent,
viewType = DiscoverMultiViewType.values()[viewType],
viewType = viewType,
onHeartButtonClick = onHeartButtonClick,
onCourseItemClick = onCourseItemClick,
handleVisitorMode = handleVisitorMode
)
}

override fun onBindViewHolder(holder: DiscoverMultiViewHolder, position: Int) {
if (currentList.isEmpty()) return

when (holder) {
is DiscoverMultiViewHolder.MarathonCourseViewHolder -> {
(currentList[position] as? List<MarathonCourse>)?.let {
Expand Down

0 comments on commit 07873d5

Please sign in to comment.