mirror of
https://github.com/whyorean/AuroraStore.git
synced 2026-06-15 19:20:53 -04:00
SearchSuggestion*: Switch from livedata to flow
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -27,6 +27,7 @@ import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.extensions.hideKeyboard
|
||||
import com.aurora.extensions.showKeyboard
|
||||
@@ -38,6 +39,8 @@ import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import com.aurora.store.viewmodel.search.SearchSuggestionViewModel
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>() {
|
||||
@@ -67,8 +70,10 @@ class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>()
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.liveSearchSuggestions.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
viewModel.searchSuggestions.collectLatest {
|
||||
updateController(it)
|
||||
}
|
||||
}
|
||||
|
||||
setupSearch()
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
package com.aurora.store.viewmodel.search
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.aurora.gplayapi.SearchSuggestEntry
|
||||
@@ -34,6 +33,8 @@ import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
|
||||
@HiltViewModel
|
||||
class SearchSuggestionViewModel @Inject constructor(
|
||||
@@ -42,7 +43,8 @@ class SearchSuggestionViewModel @Inject constructor(
|
||||
private val httpClient: IHttpClient
|
||||
) : ViewModel() {
|
||||
|
||||
val liveSearchSuggestions: MutableLiveData<List<SearchSuggestEntry>> = MutableLiveData()
|
||||
private val _searchSuggestions = MutableStateFlow<List<SearchSuggestEntry>>(emptyList())
|
||||
val searchSuggestions = _searchSuggestions.asStateFlow()
|
||||
|
||||
private val helper: SearchContract = if (authProvider.isAnonymous) {
|
||||
WebSearchHelper().using(httpClient)
|
||||
@@ -52,11 +54,7 @@ class SearchSuggestionViewModel @Inject constructor(
|
||||
|
||||
fun observeStreamBundles(query: String) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
liveSearchSuggestions.postValue(getSearchSuggestions(query))
|
||||
_searchSuggestions.value = helper.searchSuggestions(query)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getSearchSuggestions(query: String): List<SearchSuggestEntry> {
|
||||
return helper.searchSuggestions(query)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user