diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/data/model/AnotherMenuItem.kt b/app/src/main/java/com/dongyang/android/youdongknowme/data/model/AnotherMenuItem.kt new file mode 100644 index 00000000..f6be2100 --- /dev/null +++ b/app/src/main/java/com/dongyang/android/youdongknowme/data/model/AnotherMenuItem.kt @@ -0,0 +1,7 @@ +package com.dongyang.android.youdongknowme.data.model + +data class AnotherMenu( + val menuNameKr: String, + val name: String, + val price: String +) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/CafeteriaRepository.kt b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/CafeteriaRepository.kt index 0c4d13f8..25d3507c 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/CafeteriaRepository.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/CafeteriaRepository.kt @@ -32,15 +32,26 @@ class CafeteriaRepository( val price: Int, val operatingDays: List, ) { - PORKCUTLET("돈까스", 5_000, Weekdays.values().toList()), - CHEESE_PORKCUTLET("치즈돈까스", 5_500, Weekdays.values().toList()), - SWEET_POTATO_CHEESE_PORKCUTLET("고구마치즈돈까스", 6_000, Weekdays.values().toList()), + SPAM_KIMCHI_FRIED_RICE("스팸 김치 볶음밥", 4_900, listOf(Weekdays.MONDAY, Weekdays.TUESDAY)), + CHICKEN_MAYO_RICE("치킨 마요 덮밥", 4_900, listOf(Weekdays.WEDNESDAY)), + SPICY_MAYO_RICE("불닭 마요 덮밥", 4_900, listOf(Weekdays.WEDNESDAY)), + PORK_BELLY_RICE("삼겹살 덮밥", 5_500, listOf(Weekdays.THURSDAY)), + JANGJORIM_BUTTER_RICE("장조림 버터 비빔밥", 4_500, listOf(Weekdays.FRIDAY)), + RAMEN("라면", 3_500, Weekdays.values().toList()), - CHEESE_RAMEN("치즈라면", 4_000, Weekdays.values().toList()), - SEAFOOD_RAMEN("해물라면", 4_500, Weekdays.values().toList()), - SPAM_KIMCHI_FRIED_RICE("스팸김치볶음밥", 4_900, listOf(Weekdays.MONDAY, Weekdays.TUESDAY)), - HOT_CHICKEN_MAYO_RICE("불닭마요덮밥", 4_500, listOf(Weekdays.WEDNESDAY, Weekdays.THURSDAY)), - CHICKEN_MAYO_RICE("치킨마요덮밥", 4_500, listOf(Weekdays.WEDNESDAY, Weekdays.THURSDAY)), - OMELET_RICE("오므라이스", 5_500, listOf(Weekdays.FRIDAY)); + CHEESE_RAMEN("치즈 라면", 4_000, Weekdays.values().toList()), + SEAFOOD_RAMEN("해물짬뽕 라면", 4_500, Weekdays.values().toList()), + + CHAPAGETTI("짜파게티", 3_500, Weekdays.values().toList()), + CHAPAGETTI_EGG_CHEESE("짜계치", 4_000, Weekdays.values().toList()), + SPICY_RAMEN("불닭볶음면", 3_500, Weekdays.values().toList()), + CARBONARA_SPICY_RAMEN("까르보 불닭볶음면", 3_800, Weekdays.values().toList()), + CHEESE_SPICY_RAMEN("치즈 불닭볶음면", 4_000, Weekdays.values().toList()), + + PORK_CUTLET("돈까스", 5_000, Weekdays.values().toList()), + CHEESE_PORK_CUTLET("치즈 돈까스", 5_500, Weekdays.values().toList()), + BRISKET_CHICKEN_CUTLET("통가슴살 치킨까스", 5_200, Weekdays.values().toList()), + SWEET_POTATO_CHEESE_PORK_CUTLET("고구마 치즈 돈까스", 6_000, Weekdays.values().toList()), + HOMEMADE_KING_PORK_CUTLET("수제 왕 돈까스", 6_000, Weekdays.values().toList()), } } \ No newline at end of file diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/standard/di/KoinModules.kt b/app/src/main/java/com/dongyang/android/youdongknowme/standard/di/KoinModules.kt index 8873109c..6ea399bd 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/standard/di/KoinModules.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/standard/di/KoinModules.kt @@ -92,7 +92,7 @@ val viewModelModule = module { AlarmViewModel(get()) } viewModel { - CafeteriaViewModel(get(), get()) + CafeteriaViewModel(get()) } viewModel { LicenseViewModel() diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAnotherAdapter.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAnotherAdapter.kt new file mode 100644 index 00000000..bb73edbc --- /dev/null +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAnotherAdapter.kt @@ -0,0 +1,43 @@ +package com.dongyang.android.youdongknowme.ui.adapter + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.dongyang.android.youdongknowme.data.model.AnotherMenu +import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaAnotherBinding +import com.dongyang.android.youdongknowme.ui.viewholder.CafeteriaAnotherViewHolder + +class CafeteriaAnotherAdapter : RecyclerView.Adapter() { + + init { + setHasStableIds(true) + } + + private var menu = arrayListOf() + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CafeteriaAnotherViewHolder { + return CafeteriaAnotherViewHolder( + ItemCafeteriaAnotherBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ) + ) + } + + override fun getItemId(position: Int): Long { + return position.toLong() + } + + override fun onBindViewHolder(holder: CafeteriaAnotherViewHolder, position: Int) { + holder.bind(menu[position]) + } + + @SuppressLint("NotifyDataSetChanged") + fun submitList(item: List) { + menu.clear() + menu.addAll(item) + notifyDataSetChanged() + } + + override fun getItemCount(): Int = menu.size +} \ No newline at end of file diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAdapter.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaKoreanAdapter.kt similarity index 80% rename from app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAdapter.kt rename to app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaKoreanAdapter.kt index 53232a76..7787b339 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaAdapter.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/adapter/CafeteriaKoreanAdapter.kt @@ -4,9 +4,9 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaMenuBinding +import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaKoreanBinding -class CafeteriaAdapter : RecyclerView.Adapter() { +class CafeteriaKoreanAdapter : RecyclerView.Adapter() { init { setHasStableIds(true) @@ -14,16 +14,16 @@ class CafeteriaAdapter : RecyclerView.Adapter() { private var menu = arrayListOf() - inner class ViewHolder(private val binding: ItemCafeteriaMenuBinding) : + inner class ViewHolder(private val binding: ItemCafeteriaKoreanBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(item: String) { - binding.menu = item + binding.koreanMenu = item } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( - ItemCafeteriaMenuBinding.inflate( + ItemCafeteriaKoreanBinding.inflate( LayoutInflater.from(parent.context), parent, false ) ) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaContainer.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaContainer.kt index 9e931ba9..9f73a5ae 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaContainer.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaContainer.kt @@ -7,6 +7,7 @@ import com.dongyang.android.youdongknowme.databinding.ItemCalendarDayBinding import com.kizitonwose.calendarview.CalendarView import com.kizitonwose.calendarview.model.CalendarDay import com.kizitonwose.calendarview.ui.ViewContainer +import java.time.LocalDate import java.time.format.DateTimeFormatter class CafeteriaContainer( @@ -24,34 +25,44 @@ class CafeteriaContainer( init { view.setOnClickListener { - if (viewModel.selectedDate.value != day.date) { - notifyDateChanged(viewModel, calendarView, viewModel.selectedDate.value, day.date) + viewModel.selectedDate.value?.let { selectedDate -> + if (selectedDate != day.date) { + notifyDateChanged(viewModel, calendarView, selectedDate, day.date) + } } } } fun bind(day: CalendarDay) { this.day = day - bind.itemCalendarDate.text = dateFormatter.format(day.date) - bind.itemCalendarDay.text = dayFormatter.format(day.date) - bind.itemCalendarMonth.text = monthFormatter.format(day.date) - - if (day.date == viewModel.selectedDate.value) { - bind.mvItemCalendarDate.setCardBackgroundColor( - ContextCompat.getColor( - view.context, - R.color.blue300 - ) - ) - bind.itemCalendarDate.setTextColor(ContextCompat.getColor(view.context, R.color.white)) - } else { - bind.mvItemCalendarDate.setCardBackgroundColor( - ContextCompat.getColor( - view.context, - R.color.white - ) + bind.apply { + tvItemCalendarDate.text = dateFormatter.format(day.date) + tvItemCalendarDay.text = dayFormatter.format(day.date) + tvItemCalendarMonth.text = monthFormatter.format(day.date) + } + + val (bgColor, textColor) = when (day.date) { + viewModel.selectedDate.value -> R.color.blue300 to R.color.white + LocalDate.now() -> R.color.gray200 to R.color.gray500 + else -> R.color.white to R.color.gray500 + } + + bind.mvItemCalendarContainer.setCardBackgroundColor( + ContextCompat.getColor( + view.context, + bgColor ) - bind.itemCalendarDate.setTextColor(ContextCompat.getColor(view.context, R.color.black)) + ) + setTextColor(textColor) + } + + private fun setTextColor(colorRes: Int) { + val color = ContextCompat.getColor(view.context, colorRes) + + bind.apply { + tvItemCalendarDate.setTextColor(color) + tvItemCalendarDay.setTextColor(color) + tvItemCalendarMonth.setTextColor(color) } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt index b4e8189c..ac125d7a 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt @@ -4,14 +4,16 @@ import android.annotation.SuppressLint import android.util.TypedValue import android.view.MotionEvent import android.view.View +import androidx.core.content.ContextCompat +import androidx.core.view.isVisible +import androidx.recyclerview.widget.LinearLayoutManager import androidx.window.layout.WindowMetricsCalculator import com.dongyang.android.youdongknowme.R import com.dongyang.android.youdongknowme.databinding.FragmentCafeteriaBinding import com.dongyang.android.youdongknowme.standard.base.BaseFragment -import com.dongyang.android.youdongknowme.ui.adapter.CafeteriaAdapter +import com.dongyang.android.youdongknowme.ui.adapter.CafeteriaAnotherAdapter +import com.dongyang.android.youdongknowme.ui.adapter.CafeteriaKoreanAdapter import com.dongyang.android.youdongknowme.ui.view.util.EventObserver -import com.google.android.flexbox.FlexDirection -import com.google.android.flexbox.FlexboxLayoutManager import com.kizitonwose.calendarview.model.CalendarDay import com.kizitonwose.calendarview.ui.DayBinder import com.kizitonwose.calendarview.utils.Size @@ -27,53 +29,15 @@ class CafeteriaFragment : BaseFragment { - override fun create(view: View): CafeteriaContainer = - CafeteriaContainer(view, binding.cvCafeteriaCalendar, viewModel) - - override fun bind(container: CafeteriaContainer, day: CalendarDay) = container.bind(day) - } - - viewModel.updateDaysMenu(findNearestMonday(LocalDate.now())) + setupMenuRecyclerViews() + setupCategoryToggleGroup() + setupCalendar() } override fun initDataBinding() { @@ -86,13 +50,22 @@ class CafeteriaFragment : BaseFragment + updateCafeteriaState(selectedCategory) + } + + viewModel.selectedDate.observe(viewLifecycleOwner) { + viewModel.updateDaysMenu(it) + viewModel.selectedCategory.value?.let { selectedCategory -> updateCafeteriaState(selectedCategory) } + } } @SuppressLint("ClickableViewAccessibility") @@ -108,8 +81,7 @@ class CafeteriaFragment : BaseFragment @@ -123,9 +95,77 @@ class CafeteriaFragment : BaseFragment + if (isChecked) { + val category = when (checkedId) { + binding.btnKorean.id -> getString(R.string.cafeteria_korean) + binding.btnAnother.id -> getString(R.string.cafeteria_another) + else -> getString(R.string.cafeteria_korean) + } + viewModel.setCategory(category) + } + } + } + + private fun setupCalendar() { + val wmc = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(requireActivity()) + val dayWidth = wmc.bounds.width() / DATE_CELL_COUNT + val dayHeight: Int = TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + DATE_CELL_HEIGHT_DP, + resources.displayMetrics + ).toInt() + + binding.cvCafeteriaCalendar.apply { + daySize = Size(dayWidth, dayHeight) + dayBinder = object : DayBinder { + override fun create(view: View): CafeteriaContainer = + CafeteriaContainer(view, this@apply, viewModel) + + override fun bind(container: CafeteriaContainer, day: CalendarDay) { + container.bind(day) + } + } + } + } + + private fun updateCafeteriaState(selectedCategory: String) { + val activeColor = ContextCompat.getColor(requireContext(), R.color.white) + val inactiveColor = ContextCompat.getColor(requireContext(), R.color.gray200) + val isWeekend = + viewModel.selectedDate.value?.dayOfWeek == SATURDAY || viewModel.selectedDate.value?.dayOfWeek == SUNDAY + + binding.tvCafeteriaWeekend.isVisible = isWeekend + + binding.linearLayoutCafeteriaKorean.isVisible = selectedCategory == getString(R.string.cafeteria_korean) && !isWeekend + binding.linearLayoutCafeteriaAnother.isVisible = selectedCategory == getString(R.string.cafeteria_another) && !isWeekend + + binding.btnKorean.setBackgroundColor(if (selectedCategory == getString(R.string.cafeteria_korean)) activeColor else inactiveColor) + binding.btnAnother.setBackgroundColor(if (selectedCategory == getString(R.string.cafeteria_another)) activeColor else inactiveColor) + } + + private fun findNearestMonday(currentDate: LocalDate): LocalDate { return when (currentDate.dayOfWeek) { - SATURDAY, SUNDAY -> { + SUNDAY -> { currentDate.with(TemporalAdjusters.next(MONDAY)) } @@ -139,13 +179,8 @@ class CafeteriaFragment : BaseFragment> = MutableLiveData() @@ -35,19 +33,20 @@ class CafeteriaViewModel( private val _cafeteriaList: MutableLiveData> = MutableLiveData() val cafeteriaList: LiveData> = _cafeteriaList - private val _koreaMenus: MutableLiveData> = MutableLiveData() - val koreaMenus: LiveData> = _koreaMenus + private val _koreanMenus: MutableLiveData> = MutableLiveData() + val koreanMenus: LiveData> = _koreanMenus - private val _daysMenus: MutableLiveData> = MutableLiveData() - val daysMenus: LiveData> = _daysMenus + private val _anotherMenus: MutableLiveData> = MutableLiveData() + val anotherMenus: LiveData> = _anotherMenus - private val emptyMenu = listOf(resourceProvider.getString(R.string.cafeteria_no_menu)) + private val _selectedCategory = MutableLiveData() + val selectedCategory: LiveData get() = _selectedCategory init { fetchCafeteria() } - fun fetchCafeteria() { + private fun fetchCafeteria() { viewModelScope.launch { _isLoading.postValue(true) when (val result = cafeteriaRepository.fetchMenuList()) { @@ -55,7 +54,9 @@ class CafeteriaViewModel( val menuList = result.data _cafeteriaList.value = menuList _selectedDate.value = LocalDate.now() - selectedDate.value?.let { updateMenuList(it) } + _koreanMenus.value = + menuList.find { it.date == _selectedDate.value?.toString() }?.menus + ?: emptyList() _isError.postValue(false) _isLoading.postValue(false) } @@ -72,14 +73,7 @@ class CafeteriaViewModel( fun updateMenuList(selectedDate: LocalDate) { val cafeteriaList = _cafeteriaList.value ?: emptyList() _selectedDate.value = selectedDate - val selectedMenu = cafeteriaList.find { it.date == selectedDate.toString() }?.menus - _koreaMenus.postValue( - if (selectedMenu.isNullOrEmpty()) { - emptyMenu - } else { - selectedMenu - } - ) + _koreanMenus.value = cafeteriaList.find { it.date == selectedDate.toString() }?.menus ?: emptyList() } fun updateDaysMenu(selectedDate: LocalDate) { @@ -87,13 +81,25 @@ class CafeteriaViewModel( val dateToWeekday: Weekdays = Weekdays.from(selectedDate.dayOfWeek) runCatching { cafeteriaRepository.fetchDaysMenus(dateToWeekday) - }.onSuccess { daysMenus -> - val formatter = DecimalFormat("#,###") - val formattedMenuWithPrice = daysMenus.map { "${it.menuNameKr} ${formatter.format(it.price)}원" } - _daysMenus.value = formattedMenuWithPrice + }.onSuccess { anotherMenus -> + _anotherMenus.value = anotherMenus.map { menu -> + AnotherMenu( + menu.menuNameKr, + menu.name, + "${formattedPrice.format(menu.price)}원" + ) + } }.onFailure { _isError.value = true } } } + + fun setCategory(category: String) { + _selectedCategory.value = category + } + + companion object { + private val formattedPrice = DecimalFormat("#,###") + } } diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/viewholder/CafeteriaAnotherViewHolder.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/viewholder/CafeteriaAnotherViewHolder.kt new file mode 100644 index 00000000..0037bed1 --- /dev/null +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/viewholder/CafeteriaAnotherViewHolder.kt @@ -0,0 +1,34 @@ +package com.dongyang.android.youdongknowme.ui.viewholder + +import androidx.core.view.setPadding +import androidx.recyclerview.widget.RecyclerView +import com.dongyang.android.youdongknowme.R +import com.dongyang.android.youdongknowme.data.model.AnotherMenu +import com.dongyang.android.youdongknowme.databinding.ItemCafeteriaAnotherBinding + +class CafeteriaAnotherViewHolder( + private val binding: ItemCafeteriaAnotherBinding +) : RecyclerView.ViewHolder(binding.root) { + + fun bind(item: AnotherMenu) { + binding.menuKr = item.menuNameKr + binding.menuEn = item.name.split('_') + .joinToString(" ") { word -> + word.lowercase().replaceFirstChar { firstChar -> firstChar.uppercase() } + } + binding.menuPrice = item.price + + val context = binding.root.context + val resourceName = "img_cafeteria_" + item.name.lowercase() + val drawableResId = + context.resources.getIdentifier(resourceName, "drawable", context.packageName) + + if (drawableResId != 0) { + binding.imgAnother.setImageResource(drawableResId) + binding.imgAnother.setPadding(0) + } else { + binding.imgAnother.setImageResource(R.drawable.img_cafeteria_korean) + binding.imgAnother.setPadding(15) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_gray100_rounded_corner.xml b/app/src/main/res/drawable/bg_gray100_rounded_corner.xml new file mode 100644 index 00000000..3fb6651f --- /dev/null +++ b/app/src/main/res/drawable/bg_gray100_rounded_corner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/btn_gray100_radius_10dp.xml b/app/src/main/res/drawable/btn_gray100_radius_10dp.xml new file mode 100644 index 00000000..cb39088a --- /dev/null +++ b/app/src/main/res/drawable/btn_gray100_radius_10dp.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/img_cafeteria_cheese_pork_cutlet.png b/app/src/main/res/drawable/img_cafeteria_cheese_pork_cutlet.png new file mode 100644 index 00000000..a1068aa6 Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_cheese_pork_cutlet.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_cheese_ramen.png b/app/src/main/res/drawable/img_cafeteria_cheese_ramen.png new file mode 100644 index 00000000..6d89dcf6 Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_cheese_ramen.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_chicken_mayo_rice.png b/app/src/main/res/drawable/img_cafeteria_chicken_mayo_rice.png new file mode 100644 index 00000000..d670b0de Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_chicken_mayo_rice.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_korean.png b/app/src/main/res/drawable/img_cafeteria_korean.png new file mode 100644 index 00000000..364aa56d Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_korean.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_pork_cutlet.png b/app/src/main/res/drawable/img_cafeteria_pork_cutlet.png new file mode 100644 index 00000000..caf8afbc Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_pork_cutlet.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_ramen.png b/app/src/main/res/drawable/img_cafeteria_ramen.png new file mode 100644 index 00000000..dd521d8a Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_ramen.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_seafood_ramen.png b/app/src/main/res/drawable/img_cafeteria_seafood_ramen.png new file mode 100644 index 00000000..d612a2dc Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_seafood_ramen.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_spam_kimchi_fried_rice.png b/app/src/main/res/drawable/img_cafeteria_spam_kimchi_fried_rice.png new file mode 100644 index 00000000..249c5a4c Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_spam_kimchi_fried_rice.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_spicy_mayo_rice.png b/app/src/main/res/drawable/img_cafeteria_spicy_mayo_rice.png new file mode 100644 index 00000000..1875ab3a Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_spicy_mayo_rice.png differ diff --git a/app/src/main/res/drawable/img_cafeteria_sweet_potato_cheese_pork_cutlet.png b/app/src/main/res/drawable/img_cafeteria_sweet_potato_cheese_pork_cutlet.png new file mode 100644 index 00000000..d81fb853 Binary files /dev/null and b/app/src/main/res/drawable/img_cafeteria_sweet_potato_cheese_pork_cutlet.png differ diff --git a/app/src/main/res/layout/fragment_cafeteria.xml b/app/src/main/res/layout/fragment_cafeteria.xml index 574998f1..34393218 100644 --- a/app/src/main/res/layout/fragment_cafeteria.xml +++ b/app/src/main/res/layout/fragment_cafeteria.xml @@ -49,6 +49,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + - - - + - + + + + + + + app:layout_constraintTop_toBottomOf="@id/mv_category_toggle_group"> + + + + + + android:layout_marginStart="25dp" + android:orientation="vertical"> + + + android:text="@string/cafeteria_korean_subtitle" + android:textColor="@color/gray400" /> + + + + + tools:listitem="@layout/item_cafeteria_korean" /> - + - + app:layout_constraintTop_toBottomOf="@id/mv_category_toggle_group"> - + + + android:overScrollMode="never" + tools:listitem="@layout/item_cafeteria_another" /> + - + - + - - + + diff --git a/app/src/main/res/layout/item_cafeteria_another.xml b/app/src/main/res/layout/item_cafeteria_another.xml new file mode 100644 index 00000000..7a72f338 --- /dev/null +++ b/app/src/main/res/layout/item_cafeteria_another.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_cafeteria_korean.xml b/app/src/main/res/layout/item_cafeteria_korean.xml new file mode 100644 index 00000000..88b27080 --- /dev/null +++ b/app/src/main/res/layout/item_cafeteria_korean.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_cafeteria_menu.xml b/app/src/main/res/layout/item_cafeteria_menu.xml deleted file mode 100644 index e997113e..00000000 --- a/app/src/main/res/layout/item_cafeteria_menu.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_calendar_day.xml b/app/src/main/res/layout/item_calendar_day.xml index 6ae944f7..95bcda88 100644 --- a/app/src/main/res/layout/item_calendar_day.xml +++ b/app/src/main/res/layout/item_calendar_day.xml @@ -5,61 +5,58 @@ - - + + - + android:gravity="center_vertical" + android:orientation="vertical" + android:paddingHorizontal="16dp" + android:paddingVertical="8dp"> - + - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8076c22e..3eb629f8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -124,9 +124,16 @@ 점심 11:00 - 14:00, 16:30 - 18:00 8호관 3층 - 😅 등록된 메뉴가 없어요. - 🍚 한식 - 🍛 일품 + 🚫 주말에는 식당을 운영하지 않아요. + 백반 + Baekban + 6,500원 + 📋 + *해당 사진은 AI를 통해 생성된 이미지입니다. + 한식🍚 + 일품🍛 + 한식 + 일품 오픈소스 라이센스