Add: Source to MainNavFragment's VM

This commit is contained in:
machiav3lli 2022-01-13 01:36:02 +01:00
parent d183ebd5fc
commit 32330744f3
4 changed files with 6 additions and 6 deletions

View File

@ -36,7 +36,7 @@ class ExploreFragment : MainNavFragmentX() {
super.onCreate(savedInstanceState)
binding = FragmentExploreXBinding.inflate(inflater, container, false)
binding.lifecycleOwner = this
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db)
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db, source)
viewModel = ViewModelProvider(this, viewModelFactory)
.get(MainNavFragmentViewModelX::class.java)

View File

@ -44,7 +44,7 @@ class InstalledFragment : MainNavFragmentX() {
super.onCreate(savedInstanceState)
binding = FragmentInstalledXBinding.inflate(inflater, container, false)
binding.lifecycleOwner = this
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db)
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db, source)
viewModel = ViewModelProvider(this, viewModelFactory)
.get(MainNavFragmentViewModelX::class.java)

View File

@ -44,7 +44,7 @@ class LatestFragment : MainNavFragmentX() {
super.onCreate(savedInstanceState)
binding = FragmentLatestXBinding.inflate(inflater, container, false)
binding.lifecycleOwner = this
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db)
val viewModelFactory = MainNavFragmentViewModelX.Factory(mainActivityX.db, source)
viewModel = ViewModelProvider(this, viewModelFactory)
.get(MainNavFragmentViewModelX::class.java)

View File

@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class MainNavFragmentViewModelX(val db: DatabaseX) : ViewModel() {
class MainNavFragmentViewModelX(val db: DatabaseX, source: Source) : ViewModel() {
private val _order = MutableStateFlow(ProductItem.Order.LAST_UPDATE)
private val _sections = MutableStateFlow<ProductItem.Section>(ProductItem.Section.All)
@ -117,11 +117,11 @@ class MainNavFragmentViewModelX(val db: DatabaseX) : ViewModel() {
}
}
class Factory(val db: DatabaseX) : ViewModelProvider.Factory {
class Factory(val db: DatabaseX, val source: Source) : ViewModelProvider.Factory {
@Suppress("unchecked_cast")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(MainNavFragmentViewModelX::class.java)) {
return MainNavFragmentViewModelX(db) as T
return MainNavFragmentViewModelX(db, source) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}