Optimized search

This commit is contained in:
Prathamesh More 2022-03-11 08:48:04 +05:30
parent 8a050e114b
commit a1a6e98376
2 changed files with 7 additions and 4 deletions

View file

@ -144,12 +144,11 @@ class LibraryViewModel(
suggestions.postValue(repository.suggestions())
}
fun search(query: String?, filter: Filter) {
fun search(query: String?, filter: Filter) =
viewModelScope.launch(IO) {
val result = repository.search(query, filter)
val result =repository.search(query, filter)
searchResults.postValue(result)
}
}
fun forceReload(reloadType: ReloadType) = viewModelScope.launch(IO) {
when (reloadType) {

View file

@ -46,6 +46,7 @@ import com.google.android.material.chip.ChipGroup
import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.transition.MaterialFadeThrough
import kotlinx.coroutines.Job
import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent
import java.util.*
@ -63,6 +64,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
private lateinit var searchAdapter: SearchAdapter
private var query: String? = null
private var job: Job? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
enterTransition = MaterialFadeThrough().addTarget(view)
@ -184,7 +187,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
binding.voiceSearch.isGone = query.isNotEmpty()
binding.clearText.isVisible = query.isNotEmpty()
val filter = getFilter()
libraryViewModel.search(query, filter)
job?.cancel()
job = libraryViewModel.search(query, filter)
}
private fun getFilter(): Filter {