Skip to content

Commit f5d818f

Browse files
authored
Merge pull request #291 from TeamDMU/refactor/cafeteria-v2
Refactor: ๊ธˆ์ฃผ์˜ ์‹๋‹จ ๋””์ž์ธ ์ˆ˜์ •
2 parents a3530c9 + 8fcd43d commit f5d818f

27 files changed

+562
-257
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.dongyang.android.youdongknowme.data.model
2+
3+
data class AnotherMenu(
4+
val menuNameKr: String,
5+
val name: String,
6+
val price: String
7+
)

โ€Žapp/src/main/java/com/dongyang/android/youdongknowme/data/repository/CafeteriaRepository.ktโ€Ž

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,26 @@ class CafeteriaRepository(
3232
val price: Int,
3333
val operatingDays: List<Weekdays>,
3434
) {
35-
PORKCUTLET("๋ˆ๊นŒ์Šค", 5_000, Weekdays.values().toList()),
36-
CHEESE_PORKCUTLET("์น˜์ฆˆ๋ˆ๊นŒ์Šค", 5_500, Weekdays.values().toList()),
37-
SWEET_POTATO_CHEESE_PORKCUTLET("๊ณ ๊ตฌ๋งˆ์น˜์ฆˆ๋ˆ๊นŒ์Šค", 6_000, Weekdays.values().toList()),
35+
SPAM_KIMCHI_FRIED_RICE("์ŠคํŒธ ๊น€์น˜ ๋ณถ์Œ๋ฐฅ", 4_900, listOf(Weekdays.MONDAY, Weekdays.TUESDAY)),
36+
CHICKEN_MAYO_RICE("์น˜ํ‚จ ๋งˆ์š” ๋ฎ๋ฐฅ", 4_900, listOf(Weekdays.WEDNESDAY)),
37+
SPICY_MAYO_RICE("๋ถˆ๋‹ญ ๋งˆ์š” ๋ฎ๋ฐฅ", 4_900, listOf(Weekdays.WEDNESDAY)),
38+
PORK_BELLY_RICE("์‚ผ๊ฒน์‚ด ๋ฎ๋ฐฅ", 5_500, listOf(Weekdays.THURSDAY)),
39+
JANGJORIM_BUTTER_RICE("์žฅ์กฐ๋ฆผ ๋ฒ„ํ„ฐ ๋น„๋น”๋ฐฅ", 4_500, listOf(Weekdays.FRIDAY)),
40+
3841
RAMEN("๋ผ๋ฉด", 3_500, Weekdays.values().toList()),
39-
CHEESE_RAMEN("์น˜์ฆˆ๋ผ๋ฉด", 4_000, Weekdays.values().toList()),
40-
SEAFOOD_RAMEN("ํ•ด๋ฌผ๋ผ๋ฉด", 4_500, Weekdays.values().toList()),
41-
SPAM_KIMCHI_FRIED_RICE("์ŠคํŒธ๊น€์น˜๋ณถ์Œ๋ฐฅ", 4_900, listOf(Weekdays.MONDAY, Weekdays.TUESDAY)),
42-
HOT_CHICKEN_MAYO_RICE("๋ถˆ๋‹ญ๋งˆ์š”๋ฎ๋ฐฅ", 4_500, listOf(Weekdays.WEDNESDAY, Weekdays.THURSDAY)),
43-
CHICKEN_MAYO_RICE("์น˜ํ‚จ๋งˆ์š”๋ฎ๋ฐฅ", 4_500, listOf(Weekdays.WEDNESDAY, Weekdays.THURSDAY)),
44-
OMELET_RICE("์˜ค๋ฏ€๋ผ์ด์Šค", 5_500, listOf(Weekdays.FRIDAY));
42+
CHEESE_RAMEN("์น˜์ฆˆ ๋ผ๋ฉด", 4_000, Weekdays.values().toList()),
43+
SEAFOOD_RAMEN("ํ•ด๋ฌผ์งฌ๋ฝ• ๋ผ๋ฉด", 4_500, Weekdays.values().toList()),
44+
45+
CHAPAGETTI("์งœํŒŒ๊ฒŒํ‹ฐ", 3_500, Weekdays.values().toList()),
46+
CHAPAGETTI_EGG_CHEESE("์งœ๊ณ„์น˜", 4_000, Weekdays.values().toList()),
47+
SPICY_RAMEN("๋ถˆ๋‹ญ๋ณถ์Œ๋ฉด", 3_500, Weekdays.values().toList()),
48+
CARBONARA_SPICY_RAMEN("๊นŒ๋ฅด๋ณด ๋ถˆ๋‹ญ๋ณถ์Œ๋ฉด", 3_800, Weekdays.values().toList()),
49+
CHEESE_SPICY_RAMEN("์น˜์ฆˆ ๋ถˆ๋‹ญ๋ณถ์Œ๋ฉด", 4_000, Weekdays.values().toList()),
50+
51+
PORK_CUTLET("๋ˆ๊นŒ์Šค", 5_000, Weekdays.values().toList()),
52+
CHEESE_PORK_CUTLET("์น˜์ฆˆ ๋ˆ๊นŒ์Šค", 5_500, Weekdays.values().toList()),
53+
BRISKET_CHICKEN_CUTLET("ํ†ต๊ฐ€์Šด์‚ด ์น˜ํ‚จ๊นŒ์Šค", 5_200, Weekdays.values().toList()),
54+
SWEET_POTATO_CHEESE_PORK_CUTLET("๊ณ ๊ตฌ๋งˆ ์น˜์ฆˆ ๋ˆ๊นŒ์Šค", 6_000, Weekdays.values().toList()),
55+
HOMEMADE_KING_PORK_CUTLET("์ˆ˜์ œ ์™• ๋ˆ๊นŒ์Šค", 6_000, Weekdays.values().toList()),
4556
}
4657
}

โ€Žapp/src/main/java/com/dongyang/android/youdongknowme/standard/di/KoinModules.ktโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ val viewModelModule = module {
9292
AlarmViewModel(get())
9393
}
9494
viewModel {
95-
CafeteriaViewModel(get(), get())
95+
CafeteriaViewModel(get())
9696
}
9797
viewModel {
9898
LicenseViewModel()
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.dongyang.android.youdongknowme.ui.adapter
2+
3+
import android.annotation.SuppressLint
4+
import android.view.LayoutInflater
5+
import android.view.ViewGroup
6+
import androidx.recyclerview.widget.RecyclerView
7+
import com.dongyang.android.youdongknowme.data.model.AnotherMenu
8+
import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaAnotherBinding
9+
import com.dongyang.android.youdongknowme.ui.viewholder.CafeteriaAnotherViewHolder
10+
11+
class CafeteriaAnotherAdapter : RecyclerView.Adapter<CafeteriaAnotherViewHolder>() {
12+
13+
init {
14+
setHasStableIds(true)
15+
}
16+
17+
private var menu = arrayListOf<AnotherMenu>()
18+
19+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CafeteriaAnotherViewHolder {
20+
return CafeteriaAnotherViewHolder(
21+
ItemCafeteriaAnotherBinding.inflate(
22+
LayoutInflater.from(parent.context), parent, false
23+
)
24+
)
25+
}
26+
27+
override fun getItemId(position: Int): Long {
28+
return position.toLong()
29+
}
30+
31+
override fun onBindViewHolder(holder: CafeteriaAnotherViewHolder, position: Int) {
32+
holder.bind(menu[position])
33+
}
34+
35+
@SuppressLint("NotifyDataSetChanged")
36+
fun submitList(item: List<AnotherMenu>) {
37+
menu.clear()
38+
menu.addAll(item)
39+
notifyDataSetChanged()
40+
}
41+
42+
override fun getItemCount(): Int = menu.size
43+
}

app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAdapter.kt renamed to app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaKoreanAdapter.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,26 @@ import android.annotation.SuppressLint
44
import android.view.LayoutInflater
55
import android.view.ViewGroup
66
import androidx.recyclerview.widget.RecyclerView
7-
import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaMenuBinding
7+
import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaKoreanBinding
88

9-
class CafeteriaAdapter : RecyclerView.Adapter<CafeteriaAdapter.ViewHolder>() {
9+
class CafeteriaKoreanAdapter : RecyclerView.Adapter<CafeteriaKoreanAdapter.ViewHolder>() {
1010

1111
init {
1212
setHasStableIds(true)
1313
}
1414

1515
private var menu = arrayListOf<String>()
1616

17-
inner class ViewHolder(private val binding: ItemCafeteriaMenuBinding) :
17+
inner class ViewHolder(private val binding: ItemCafeteriaKoreanBinding) :
1818
RecyclerView.ViewHolder(binding.root) {
1919
fun bind(item: String) {
20-
binding.menu = item
20+
binding.koreanMenu = item
2121
}
2222
}
2323

2424
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
2525
return ViewHolder(
26-
ItemCafeteriaMenuBinding.inflate(
26+
ItemCafeteriaKoreanBinding.inflate(
2727
LayoutInflater.from(parent.context), parent, false
2828
)
2929
)

โ€Žapp/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaContainer.ktโ€Ž

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.dongyang.android.youdongknowme.databinding.ItemCalendarDayBinding
77
import com.kizitonwose.calendarview.CalendarView
88
import com.kizitonwose.calendarview.model.CalendarDay
99
import com.kizitonwose.calendarview.ui.ViewContainer
10+
import java.time.LocalDate
1011
import java.time.format.DateTimeFormatter
1112

1213
class CafeteriaContainer(
@@ -24,34 +25,44 @@ class CafeteriaContainer(
2425

2526
init {
2627
view.setOnClickListener {
27-
if (viewModel.selectedDate.value != day.date) {
28-
notifyDateChanged(viewModel, calendarView, viewModel.selectedDate.value, day.date)
28+
viewModel.selectedDate.value?.let { selectedDate ->
29+
if (selectedDate != day.date) {
30+
notifyDateChanged(viewModel, calendarView, selectedDate, day.date)
31+
}
2932
}
3033
}
3134
}
3235

3336
fun bind(day: CalendarDay) {
3437
this.day = day
35-
bind.itemCalendarDate.text = dateFormatter.format(day.date)
36-
bind.itemCalendarDay.text = dayFormatter.format(day.date)
37-
bind.itemCalendarMonth.text = monthFormatter.format(day.date)
38-
39-
if (day.date == viewModel.selectedDate.value) {
40-
bind.mvItemCalendarDate.setCardBackgroundColor(
41-
ContextCompat.getColor(
42-
view.context,
43-
R.color.blue300
44-
)
45-
)
46-
bind.itemCalendarDate.setTextColor(ContextCompat.getColor(view.context, R.color.white))
47-
} else {
48-
bind.mvItemCalendarDate.setCardBackgroundColor(
49-
ContextCompat.getColor(
50-
view.context,
51-
R.color.white
52-
)
38+
bind.apply {
39+
tvItemCalendarDate.text = dateFormatter.format(day.date)
40+
tvItemCalendarDay.text = dayFormatter.format(day.date)
41+
tvItemCalendarMonth.text = monthFormatter.format(day.date)
42+
}
43+
44+
val (bgColor, textColor) = when (day.date) {
45+
viewModel.selectedDate.value -> R.color.blue300 to R.color.white
46+
LocalDate.now() -> R.color.gray200 to R.color.gray500
47+
else -> R.color.white to R.color.gray500
48+
}
49+
50+
bind.mvItemCalendarContainer.setCardBackgroundColor(
51+
ContextCompat.getColor(
52+
view.context,
53+
bgColor
5354
)
54-
bind.itemCalendarDate.setTextColor(ContextCompat.getColor(view.context, R.color.black))
55+
)
56+
setTextColor(textColor)
57+
}
58+
59+
private fun setTextColor(colorRes: Int) {
60+
val color = ContextCompat.getColor(view.context, colorRes)
61+
62+
bind.apply {
63+
tvItemCalendarDate.setTextColor(color)
64+
tvItemCalendarDay.setTextColor(color)
65+
tvItemCalendarMonth.setTextColor(color)
5566
}
5667
}
57-
}
68+
}

0 commit comments

Comments
ย (0)