@@ -3,7 +3,6 @@ package com.neverland.thinkerbell.view.myPage.adapter
3
3
import android.view.LayoutInflater
4
4
import android.view.ViewGroup
5
5
import androidx.recyclerview.widget.RecyclerView
6
- import com.neverland.core.utils.LoggerUtil
7
6
import com.neverland.domain.model.univ.AcademicSchedule
8
7
import com.neverland.domain.model.univ.BookmarkScheduleGroup
9
8
import com.neverland.domain.model.univ.groupSchedulesByYearAndMonth
@@ -16,6 +15,8 @@ class FavoriteScheduleAdapter(private var scheduleGroups: List<BookmarkScheduleG
16
15
) :
17
16
RecyclerView .Adapter <RecyclerView .ViewHolder >() {
18
17
18
+ private val unmarkedItem = mutableListOf<Int >()
19
+
19
20
companion object {
20
21
private const val VIEW_TYPE_HEADER = 0
21
22
private const val VIEW_TYPE_ITEM = 1
@@ -103,8 +104,14 @@ class FavoriteScheduleAdapter(private var scheduleGroups: List<BookmarkScheduleG
103
104
val date = if (schedule.startDate == schedule.endDate) schedule.startDate.removeRange(0 ,5 ).replace(" -" ," ." )
104
105
else " ${schedule.startDate.removeRange(0 ,5 ).replace(" -" ," ." )} ~ ${schedule.endDate.removeRange(0 ,5 ).replace(" -" ," ." )} "
105
106
binding.tvScheduleDate.text = date
106
- binding.btnFavorite.isChecked = schedule.marked
107
+ binding.btnFavorite.isChecked = ! unmarkedItem.contains( schedule.id)
107
108
binding.btnFavorite.setOnClickListener {
109
+ if (unmarkedItem.contains(schedule.id)) {
110
+ unmarkedItem.remove(schedule.id)
111
+ } else {
112
+ unmarkedItem.add(schedule.id)
113
+ }
114
+
108
115
bookmarkClickListener.onClick(Pair (schedule.id, binding.btnFavorite.isChecked))
109
116
}
110
117
}
@@ -117,21 +124,18 @@ class FavoriteScheduleAdapter(private var scheduleGroups: List<BookmarkScheduleG
117
124
}
118
125
119
126
fun setList (newList : List <AcademicSchedule > = listOf(), year : Int ) {
120
- LoggerUtil .d(" ${newList} , ${year} " )
121
127
// 데이터를 월별로 그룹화
122
128
if (allItems.isEmpty()) {
123
129
allItems = groupSchedulesByYearAndMonth(newList)
124
130
}
125
- LoggerUtil .d(allItems.toString())
126
131
// 월별로 그룹을 내림차순 정렬
127
132
val sortedScheduleGroups = allItems.filter { it.year == year }.sortedByDescending { group ->
128
133
// "9월"과 같은 문자열에서 숫자를 추출하여 정렬
129
134
group.month
130
135
}
131
136
sortedScheduleGroups.map { it.schedules.map { it.marked = true } }
132
- LoggerUtil .d(sortedScheduleGroups.toString())
133
137
scheduleGroups = sortedScheduleGroups
134
- LoggerUtil .d(scheduleGroups.toString())
135
138
notifyDataSetChanged()
136
139
}
140
+
137
141
}
0 commit comments