From 2f16fe4d05c85c0cbb916cf937a1d6c084042abb Mon Sep 17 00:00:00 2001 From: Swapnil Kuwar Date: Sun, 15 Feb 2026 00:07:58 +0530 Subject: [PATCH] Search result provider pining feature added. --- .../cloudstream3/ui/search/SearchFragment.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 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 c24e8188277..e8d5b80d55a 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 @@ -494,24 +494,34 @@ class SearchFragment : BaseFragment( try { // https://stackoverflow.com/questions/6866238/concurrent-modification-exception-adding-to-an-arraylist listLock.lock() + + val pinnedOrder = DataStoreHelper.pinnedProviders.toList().reversed() + + val sortedList = list.toList().sortedWith(compareBy { pair -> + val index = pinnedOrder.indexOf(pair.first) + if (index == -1) Int.MAX_VALUE else index + }) + (binding.searchMasterRecycler.adapter as? ParentItemAdapter)?.apply { - val newItems = list.map { ongoing -> - val dataList = ongoing.value.list + val newItems = sortedList.map { ongoing -> + + val providerName = ongoing.first + val providerData = ongoing.second + + val dataList = providerData.list val dataListFiltered = context?.filterSearchResultByFilmQuality(dataList) ?: dataList val homePageList = HomePageList( - ongoing.key, + providerName, dataListFiltered ) - val expandableList = HomeViewModel.ExpandableHomepageList( + HomeViewModel.ExpandableHomepageList( homePageList, - ongoing.value.currentPage, - ongoing.value.hasNext + providerData.currentPage, + providerData.hasNext ) - - expandableList } submitList(newItems)