fix(content): 전체 탭 sort-bar 표시를 정리한다

This commit is contained in:
2026-07-10 07:35:46 +09:00
parent bbf94b8a0d
commit bf5cc1d7bb
3 changed files with 17 additions and 30 deletions

View File

@@ -22,7 +22,6 @@ import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.ToastMessage import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.databinding.FragmentV2MainContentBinding import kr.co.vividnext.sodalive.databinding.FragmentV2MainContentBinding
import kr.co.vividnext.sodalive.databinding.ViewSectionTitleBinding import kr.co.vividnext.sodalive.databinding.ViewSectionTitleBinding
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
import kr.co.vividnext.sodalive.mypage.can.charge.CanChargeActivity import kr.co.vividnext.sodalive.mypage.can.charge.CanChargeActivity
import kr.co.vividnext.sodalive.search.SearchActivity import kr.co.vividnext.sodalive.search.SearchActivity
@@ -44,6 +43,7 @@ import kr.co.vividnext.sodalive.v2.main.content.model.ContentCommentedAudioUiMod
import kr.co.vividnext.sodalive.v2.main.content.model.ContentOriginalSeriesSection import kr.co.vividnext.sodalive.v2.main.content.model.ContentOriginalSeriesSection
import kr.co.vividnext.sodalive.v2.main.content.model.ContentOriginalSeriesUiModel import kr.co.vividnext.sodalive.v2.main.content.model.ContentOriginalSeriesUiModel
import kr.co.vividnext.sodalive.v2.main.content.model.MainContentAllTabUiState import kr.co.vividnext.sodalive.v2.main.content.model.MainContentAllTabUiState
import kr.co.vividnext.sodalive.v2.main.content.model.contentAllSortOptions
import kr.co.vividnext.sodalive.v2.main.content.model.contentAllDayOfWeekOptions import kr.co.vividnext.sodalive.v2.main.content.model.contentAllDayOfWeekOptions
import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllDayLabelResId import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllDayLabelResId
import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllTypeLabelResId import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllTypeLabelResId
@@ -232,7 +232,7 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
private fun setUpAllSortButton() { private fun setUpAllSortButton() {
binding.layoutContentAllSortButton.setOnClickListener { binding.layoutContentAllSortButton.setOnClickListener {
val state = currentAllTabState ?: return@setOnClickListener val state = currentAllTabState ?: return@setOnClickListener
showAllSortPopup(state.selectedSort) showAllSortPopup(state)
} }
} }
@@ -463,7 +463,6 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
} }
private fun bindAllTabControls(state: MainContentAllTabUiState) { private fun bindAllTabControls(state: MainContentAllTabUiState) {
binding.tvContentAllTotalCount.text = state.totalCount.moneyFormat()
binding.tvContentAllSortLabel.setText(state.selectedSort.toLabelResId()) binding.tvContentAllSortLabel.setText(state.selectedSort.toLabelResId())
binding.viewContentAllTypeTabs.root.setMenus( binding.viewContentAllTypeTabs.root.setMenus(
contentAllTypes.map { type -> getString(type.toContentAllTypeLabelResId()) }, contentAllTypes.map { type -> getString(type.toContentAllTypeLabelResId()) },
@@ -495,13 +494,15 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
binding.layoutContentAllEmptyError.visibility = View.GONE binding.layoutContentAllEmptyError.visibility = View.GONE
} }
private fun showAllSortPopup(selectedSort: ContentSort) { private fun showAllSortPopup(state: MainContentAllTabUiState) {
val sortOptions = state.selectedType.contentAllSortOptions()
sortPopup?.dismiss() sortPopup?.dismiss()
sortPopup = CreatorChannelSortPopup( sortPopup = CreatorChannelSortPopup(
anchor = binding.layoutContentAllSortButton, anchor = binding.layoutContentAllSortButton,
selectedSort = selectedSort, selectedSort = state.selectedSort,
sortOptions = sortOptions,
onSortSelected = { sort -> onSortSelected = { sort ->
if (sort in ContentSort.entries) { if (sort in sortOptions) {
contentAllTabViewModel.changeSort(sort) contentAllTabViewModel.changeSort(sort)
} }
} }

View File

@@ -69,24 +69,10 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_content_all_day_filter"> app:layout_constraintTop_toBottomOf="@id/layout_content_all_day_filter">
<TextView <Space
android:id="@+id/tv_content_all_total_label"
style="@style/Typography.Body2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="@string/screen_content_tab_all"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_content_all_total_count"
style="@style/Typography.Body2"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_4" android:layout_weight="1" />
android:layout_weight="1"
android:includeFontPadding="false"
android:textColor="@color/gray_500" />
<LinearLayout <LinearLayout
android:id="@+id/layout_content_all_sort_button" android:id="@+id/layout_content_all_sort_button"

View File

@@ -97,12 +97,11 @@ class ContentMainFragmentSourceTest {
assertTrue(selectedDayBackground.contains("@dimen/radius_8")) assertTrue(selectedDayBackground.contains("@dimen/radius_8"))
assertTrue(fragmentLayout.contains("@+id/layout_content_all_sort_bar")) assertTrue(fragmentLayout.contains("@+id/layout_content_all_sort_bar"))
assertTrue(fragmentLayout.contains("android:layout_height=\"52dp\"")) assertTrue(fragmentLayout.contains("android:layout_height=\"52dp\""))
assertTrue(fragmentLayout.contains("@+id/tv_content_all_total_label")) assertFalse(fragmentLayout.contains("@+id/tv_content_all_total_label"))
assertTrue(fragmentLayout.contains("android:text=\"@string/screen_content_tab_all\"")) assertFalse(fragmentLayout.contains("android:text=\"@string/screen_content_tab_all\""))
assertTrue(fragmentLayout.contains("android:textColor=\"@color/white\"")) assertFalse(fragmentLayout.contains("@+id/tv_content_all_total_count"))
assertTrue(fragmentLayout.contains("@+id/tv_content_all_total_count")) assertTrue(fragmentLayout.contains("<Space"))
assertTrue(fragmentLayout.contains("style=\"@style/Typography.Body2\"")) assertTrue(fragmentLayout.contains("android:layout_weight=\"1\""))
assertTrue(fragmentLayout.contains("android:textColor=\"@color/gray_500\""))
assertTrue(fragmentLayout.contains("@+id/layout_content_all_sort_button")) assertTrue(fragmentLayout.contains("@+id/layout_content_all_sort_button"))
assertTrue(fragmentLayout.contains("android:layout_height=\"match_parent\"")) assertTrue(fragmentLayout.contains("android:layout_height=\"match_parent\""))
assertTrue(fragmentLayout.contains("@+id/tv_content_all_sort_label")) assertTrue(fragmentLayout.contains("@+id/tv_content_all_sort_label"))
@@ -131,7 +130,8 @@ class ContentMainFragmentSourceTest {
assertFalse(source.contains("screen_content_all_type_all")) assertFalse(source.contains("screen_content_all_type_all"))
assertFalse(source.contains("screen_content_all_type_serialized")) assertFalse(source.contains("screen_content_all_type_serialized"))
assertTrue(source.contains("CreatorChannelSortPopup")) assertTrue(source.contains("CreatorChannelSortPopup"))
assertTrue(source.contains("ContentSort.entries")) assertTrue(source.contains("state.selectedType.contentAllSortOptions()"))
assertTrue(source.contains("sortOptions = sortOptions"))
assertTrue(source.contains("toLabelResId()")) assertTrue(source.contains("toLabelResId()"))
assertTrue(source.contains("contentAllDayOfWeekOptions")) assertTrue(source.contains("contentAllDayOfWeekOptions"))
assertTrue(source.contains("toContentAllDayLabelResId()")) assertTrue(source.contains("toContentAllDayLabelResId()"))
@@ -221,7 +221,7 @@ class ContentMainFragmentSourceTest {
assertSourceContains(source, "binding.viewContentAllTypeTabs.root.setMenus") assertSourceContains(source, "binding.viewContentAllTypeTabs.root.setMenus")
assertSourceContains(source, "binding.layoutContentAllDayFilter.visibility") assertSourceContains(source, "binding.layoutContentAllDayFilter.visibility")
assertSourceContains(source, "binding.tvContentAllSortLabel.setText") assertSourceContains(source, "binding.tvContentAllSortLabel.setText")
assertSourceContains(source, "binding.tvContentAllTotalCount.text") assertFalse(source.contains("binding.tvContentAllTotalCount.text"))
} }
@Test @Test