diff --git a/domain/src/main/java/in/koreatech/koin/domain/util/ext/DiningListExtensions.kt b/domain/src/main/java/in/koreatech/koin/domain/util/ext/DiningListExtensions.kt index ff0816cfa..cb7058143 100644 --- a/domain/src/main/java/in/koreatech/koin/domain/util/ext/DiningListExtensions.kt +++ b/domain/src/main/java/in/koreatech/koin/domain/util/ext/DiningListExtensions.kt @@ -1,6 +1,7 @@ package `in`.koreatech.koin.domain.util.ext import `in`.koreatech.koin.domain.model.dining.Dining +import `in`.koreatech.koin.domain.model.dining.DiningPlace import `in`.koreatech.koin.domain.model.dining.DiningType fun List.typeFilter(type: DiningType) = this.filter { @@ -9,11 +10,26 @@ fun List.typeFilter(type: DiningType) = this.filter { fun List.arrange() = this.let { - val diningList = mutableListOf() - val campus2 = this.filter { it.place == "2캠퍼스" } val campus1 = this.filter { it.place != "2캠퍼스" } campus1.sortedBy { it.place } - diningList.addAll(campus1) - diningList.addAll(campus2) - diningList.toList() + val allPlaces = DiningPlace.entries.map { it.place } + + allPlaces.map { place -> + campus1.find { it.place == place } ?: Dining( + id = 0, + date = "", + type = "", + place = place, + priceCard = "", + priceCash = "", + kcal = "", + menu = listOf(), + imageUrl = "", + createdAt = "", + updatedAt = "", + soldoutAt = "", + changedAt = "", + error = "" + ) + } } \ No newline at end of file diff --git a/koin/src/main/java/in/koreatech/koin/ui/main/activity/MainActivity.kt b/koin/src/main/java/in/koreatech/koin/ui/main/activity/MainActivity.kt index cf5bdc110..7858ca2fe 100644 --- a/koin/src/main/java/in/koreatech/koin/ui/main/activity/MainActivity.kt +++ b/koin/src/main/java/in/koreatech/koin/ui/main/activity/MainActivity.kt @@ -109,9 +109,9 @@ class MainActivity : KoinNavigationDrawerActivity() { viewModel.setSelectedPosition(tab.position) } - override fun onTabUnselected(p0: TabLayout.Tab?) {} + override fun onTabUnselected(tab: TabLayout.Tab) {} - override fun onTabReselected(p0: TabLayout.Tab?) {} + override fun onTabReselected(tab: TabLayout.Tab) {} }) } diff --git a/koin/src/main/java/in/koreatech/koin/ui/main/fragment/DiningContainerFragment.kt b/koin/src/main/java/in/koreatech/koin/ui/main/fragment/DiningContainerFragment.kt index d4277b77c..e87c641f2 100644 --- a/koin/src/main/java/in/koreatech/koin/ui/main/fragment/DiningContainerFragment.kt +++ b/koin/src/main/java/in/koreatech/koin/ui/main/fragment/DiningContainerFragment.kt @@ -63,14 +63,7 @@ class DiningContainerFragment : Fragment(R.layout.fragment_dining_container) { val diningArranged = list .typeFilter(diningType) .arrange() - - if (list.isEmpty() || position >= diningArranged.size) { - binding.viewEmptyDining.emptyDiningListFrameLayout.isVisible = true - return - } - binding.viewEmptyDining.emptyDiningListFrameLayout.isVisible = false - - listOf( + val menus = listOf( binding.textViewDiningContainerMenu0, binding.textViewDiningContainerMenu2, binding.textViewDiningContainerMenu4, @@ -81,24 +74,37 @@ class DiningContainerFragment : Fragment(R.layout.fragment_dining_container) { binding.textViewDiningContainerMenu5, binding.textViewDiningContainerMenu7, binding.textViewDiningContainerMenu9 - ).zip(diningArranged[position].menu).forEach { (textView, menu) -> + ) + + if (list.isEmpty() || diningArranged[position].menu.isEmpty()) { + binding.viewEmptyDining.emptyDiningListFrameLayout.isVisible = true + return + } + binding.viewEmptyDining.emptyDiningListFrameLayout.isVisible = false + + menus.forEach { it.text = "" } + menus.zip(diningArranged[position].menu).forEach { (textView, menu) -> textView.text = menu } val isSoldOut = diningArranged[position].soldoutAt.isNotEmpty() val isChanged = diningArranged[position].changedAt.isNotEmpty() - with (binding.textViewDiningStatus) { + with(binding.textViewDiningStatus) { when { isSoldOut -> { text = context.getString(R.string.dining_soldout) setTextColor(ContextCompat.getColor(context, R.color.dining_soldout_text)) - background = ContextCompat.getDrawable(context, R.drawable.dining_soldout_fill_radius_4) + background = + ContextCompat.getDrawable(context, R.drawable.dining_soldout_fill_radius_4) } + isChanged -> { text = context.getString(R.string.dining_changed) setTextColor(ContextCompat.getColor(context, R.color.dining_changed_text)) - background = ContextCompat.getDrawable(context, R.drawable.dining_changed_fill_radius_4) + background = + ContextCompat.getDrawable(context, R.drawable.dining_changed_fill_radius_4) } + else -> { visibility = View.INVISIBLE }