fix(content): 전체 탭 sort-bar 표시를 정리한다
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user