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()) suggestions.postValue(repository.suggestions())
} }
fun search(query: String?, filter: Filter) { fun search(query: String?, filter: Filter) =
viewModelScope.launch(IO) { viewModelScope.launch(IO) {
val result = repository.search(query, filter) val result =repository.search(query, filter)
searchResults.postValue(result) searchResults.postValue(result)
} }
}
fun forceReload(reloadType: ReloadType) = viewModelScope.launch(IO) { fun forceReload(reloadType: ReloadType) = viewModelScope.launch(IO) {
when (reloadType) { 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.shape.MaterialShapeDrawable
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.transition.MaterialFadeThrough import com.google.android.material.transition.MaterialFadeThrough
import kotlinx.coroutines.Job
import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent
import java.util.* import java.util.*
@ -63,6 +64,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
private lateinit var searchAdapter: SearchAdapter private lateinit var searchAdapter: SearchAdapter
private var query: String? = null private var query: String? = null
private var job: Job? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
enterTransition = MaterialFadeThrough().addTarget(view) enterTransition = MaterialFadeThrough().addTarget(view)
@ -184,7 +187,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa
binding.voiceSearch.isGone = query.isNotEmpty() binding.voiceSearch.isGone = query.isNotEmpty()
binding.clearText.isVisible = query.isNotEmpty() binding.clearText.isVisible = query.isNotEmpty()
val filter = getFilter() val filter = getFilter()
libraryViewModel.search(query, filter) job?.cancel()
job = libraryViewModel.search(query, filter)
} }
private fun getFilter(): Filter { private fun getFilter(): Filter {