diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt index bfb4f7ab..3b820e92 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/library/LibraryFragment.kt @@ -25,6 +25,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 +import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.allProviders @@ -163,7 +164,16 @@ class LibraryFragment : Fragment() { return true } - libraryViewModel.sort(ListSorting.Query, newText) + val callback = Runnable { + libraryViewModel.sort(ListSorting.Query, newText) + } + + binding?.mainSearch?.removeCallbacks(callback) + + // Delay the execution of the search operation by 0.5 second (adjust as needed) + // this prevents running search when the user is typing + binding?.mainSearch?.postDelayed(callback, 1000) + return true } }) @@ -451,6 +461,14 @@ class LibraryFragment : Fragment() { } }.attach() + binding?.libraryTabLayout?.addOnTabSelectedListener(object: TabLayout.OnTabSelectedListener { + override fun onTabSelected(tab: TabLayout.Tab?) { + libraryViewModel.currentPage = binding?.libraryTabLayout?.selectedTabPosition ?:0 + } + override fun onTabUnselected(tab: TabLayout.Tab?) {} + override fun onTabReselected(tab: TabLayout.Tab?) {} + }) + } }