mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-07 16:29:55 +00:00
Improve: Faster Execution of ViewModel fun's
This commit is contained in:
parent
5508be93ca
commit
f6ed9e9a92
@ -35,9 +35,11 @@ class AppListViewModel : ViewModel() {
|
|||||||
var mSearchQuery = ""
|
var mSearchQuery = ""
|
||||||
var mSections: ProductItem.Section = ProductItem.Section.All
|
var mSections: ProductItem.Section = ProductItem.Section.All
|
||||||
var mOrder: ProductItem.Order = ProductItem.Order.NAME
|
var mOrder: ProductItem.Order = ProductItem.Order.NAME
|
||||||
viewModelScope.launch { searchQuery.collect { if (source.sections) mSearchQuery = it } }
|
viewModelScope.launch {
|
||||||
viewModelScope.launch { sections.collect { if (source.sections) mSections = it } }
|
launch { searchQuery.collect { if (source.sections) mSearchQuery = it } }
|
||||||
viewModelScope.launch { order.collect { if (source.order) mOrder = it } }
|
launch { sections.collect { if (source.sections) mSections = it } }
|
||||||
|
launch { order.collect { if (source.order) mOrder = it } }
|
||||||
|
}
|
||||||
return when (source) {
|
return when (source) {
|
||||||
AppListFragment.Source.AVAILABLE -> CursorOwner.Request.ProductsAvailable(
|
AppListFragment.Source.AVAILABLE -> CursorOwner.Request.ProductsAvailable(
|
||||||
mSearchQuery,
|
mSearchQuery,
|
||||||
@ -58,28 +60,28 @@ class AppListViewModel : ViewModel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun setSection(newSection: ProductItem.Section, perform: () -> Unit) {
|
fun setSection(newSection: ProductItem.Section, perform: () -> Unit) {
|
||||||
viewModelScope.launch(Dispatchers.Main) {
|
viewModelScope.launch {
|
||||||
if (newSection != sections.value) {
|
if (newSection != sections.value) {
|
||||||
_sections.emit(newSection)
|
_sections.emit(newSection)
|
||||||
perform()
|
launch(Dispatchers.Main) { perform() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setOrder(newOrder: ProductItem.Order, perform: () -> Unit) {
|
fun setOrder(newOrder: ProductItem.Order, perform: () -> Unit) {
|
||||||
viewModelScope.launch(Dispatchers.Main) {
|
viewModelScope.launch {
|
||||||
if (newOrder != order.value) {
|
if (newOrder != order.value) {
|
||||||
_order.emit(newOrder)
|
_order.emit(newOrder)
|
||||||
perform()
|
launch(Dispatchers.Main) { perform() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setSearchQuery(newSearchQuery: String, perform: () -> Unit) {
|
fun setSearchQuery(newSearchQuery: String, perform: () -> Unit) {
|
||||||
viewModelScope.launch(Dispatchers.Main) {
|
viewModelScope.launch {
|
||||||
if (newSearchQuery != searchQuery.value) {
|
if (newSearchQuery != searchQuery.value) {
|
||||||
_searchQuery.emit(newSearchQuery)
|
_searchQuery.emit(newSearchQuery)
|
||||||
perform()
|
launch(Dispatchers.Main) { perform() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user