Fix filter chips #572
This commit is contained in:
@@ -52,7 +52,7 @@ fun filterTagDelegate(
|
||||
) {
|
||||
|
||||
itemView.setOnClickListener {
|
||||
listener.onTagItemClick(item)
|
||||
listener.onTagItemClick(item, isFromChip = false)
|
||||
}
|
||||
|
||||
bind { payloads ->
|
||||
@@ -69,7 +69,7 @@ fun filterTagMultipleDelegate(
|
||||
) {
|
||||
|
||||
itemView.setOnClickListener {
|
||||
listener.onTagItemClick(item)
|
||||
listener.onTagItemClick(item, isFromChip = false)
|
||||
}
|
||||
|
||||
bind { payloads ->
|
||||
|
||||
@@ -92,10 +92,14 @@ class FilterCoordinator @Inject constructor(
|
||||
repository.defaultSortOrder = item.order
|
||||
}
|
||||
|
||||
override fun onTagItemClick(item: FilterItem.Tag) {
|
||||
override fun onTagItemClick(item: FilterItem.Tag, isFromChip: Boolean) {
|
||||
currentState.update { oldValue ->
|
||||
val newTags = if (!item.isMultiple) {
|
||||
setOf(item.tag)
|
||||
if (isFromChip && item.isChecked) {
|
||||
emptySet()
|
||||
} else {
|
||||
setOf(item.tag)
|
||||
}
|
||||
} else if (item.isChecked) {
|
||||
oldValue.tags - item.tag
|
||||
} else {
|
||||
|
||||
@@ -39,7 +39,8 @@ class FilterHeaderFragment : BaseFragment<FragmentFilterHeaderBinding>(), ChipsV
|
||||
if (tag == null) {
|
||||
FilterSheetFragment.show(parentFragmentManager)
|
||||
} else {
|
||||
filter.onTagItemClick(FilterItem.Tag(tag, filter.header.value.allowMultipleTags, !chip.isChecked))
|
||||
val filterItem = FilterItem.Tag(tag, filter.header.value.allowMultipleTags, !chip.isChecked)
|
||||
filter.onTagItemClick(filterItem, isFromChip = true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ interface OnFilterChangedListener : ListHeaderClickListener {
|
||||
|
||||
fun onSortItemClick(item: FilterItem.Sort)
|
||||
|
||||
fun onTagItemClick(item: FilterItem.Tag)
|
||||
fun onTagItemClick(item: FilterItem.Tag, isFromChip: Boolean)
|
||||
|
||||
fun onStateItemClick(item: FilterItem.State)
|
||||
}
|
||||
|
||||
@@ -98,7 +98,8 @@ class PreviewFragment : BaseFragment<FragmentPreviewBinding>(), View.OnClickList
|
||||
if (filter == null) {
|
||||
startActivity(MangaListActivity.newIntent(requireContext(), setOf(tag)))
|
||||
} else {
|
||||
filter.onTagItemClick(FilterItem.Tag(tag, filter.header.value.allowMultipleTags, false))
|
||||
val filterItem = FilterItem.Tag(tag, filter.header.value.allowMultipleTags, false)
|
||||
filter.onTagItemClick(filterItem, isFromChip = false)
|
||||
closeSelf()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user