From 91dc83e6a34847aee2e7feaf953fd0617b12cc40 Mon Sep 17 00:00:00 2001 From: coxju <118901131+coxju@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:50:37 +0530 Subject: [PATCH] refactor (search filter) : syncing main tytype chips and bottom dialog tytype chips (#811) --- .../cloudstream3/ui/search/SearchFragment.kt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt index 65dfd679..7f33c08d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt @@ -256,12 +256,12 @@ class SearchFragment : Fragment() { builder.behavior.state = BottomSheetBehavior.STATE_EXPANDED - val binding: HomeSelectMainpageBinding = HomeSelectMainpageBinding.inflate( + val selectMainpageBinding: HomeSelectMainpageBinding = HomeSelectMainpageBinding.inflate( builder.layoutInflater, null, false ) - builder.setContentView(binding.root) + builder.setContentView(selectMainpageBinding.root) builder.show() builder.let { dialog -> val isMultiLang = ctx.getApiProviderLangSettings().let { set -> @@ -315,16 +315,23 @@ class SearchFragment : Fragment() { arrayAdapter.notifyDataSetChanged() } - val selectedSearchTypes = DataStoreHelper.searchPreferenceTags - bindChips( - binding.tvtypesChipsScroll.tvtypesChips, + selectMainpageBinding.tvtypesChipsScroll.tvtypesChips, selectedSearchTypes, - TvType.values().toList() + validAPIs.flatMap { api -> api.supportedTypes }.distinct() ) { list -> updateList(list) + + // refresh selected chips in main chips + if (selectedSearchTypes.toSet() != list.toSet()) { + selectedSearchTypes.clear() + selectedSearchTypes.addAll(list) + updateChips(binding?.tvtypesChipsScroll?.tvtypesChips, selectedSearchTypes) + + } } + cancelBtt?.setOnClickListener { dialog.dismissSafe() } @@ -343,6 +350,9 @@ class SearchFragment : Fragment() { dialog.setOnDismissListener { DataStoreHelper.searchPreferenceProviders = currentSelectedApis.toList() selectedApis = currentSelectedApis + + // run search when dialog is close + search(binding?.mainSearch?.query?.toString()) } updateList(selectedSearchTypes.toList()) }