diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt index 42ebb8ab2..016e4bc0a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt @@ -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) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt index 618afee30..50c922662 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt @@ -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 {