diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt index b3ce7d39..5122aafd 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/ExploreFragment.kt @@ -52,6 +52,7 @@ class ExploreFragment : MainNavFragmentX() { viewModel.repositories.observe(viewLifecycleOwner) { repositories = it.associateBy { repo -> repo.id } } + viewModel.installed.observe(viewLifecycleOwner) {} viewModel.primaryProducts.observe(viewLifecycleOwner) { redrawPage(it, viewModel.categories.value ?: emptyList()) } diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt index 5d2dca5a..c8587e7b 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt @@ -43,6 +43,7 @@ class InstalledFragment : MainNavFragmentX() { viewModel.repositories.observe(viewLifecycleOwner) { repositories = it.associateBy { repo -> repo.id } } + viewModel.installed.observe(viewLifecycleOwner) {} viewModel.primaryProducts.observe(viewLifecycleOwner) { binding.primaryComposeRecycler.setContent { AppTheme( diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt index 84025299..a17cd09c 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/LatestFragment.kt @@ -43,6 +43,7 @@ class LatestFragment : MainNavFragmentX() { viewModel.repositories.observe(viewLifecycleOwner) { repositories = it.associateBy { repo -> repo.id } } + viewModel.installed.observe(viewLifecycleOwner) {} viewModel.primaryProducts.observe(viewLifecycleOwner) { binding.primaryComposeRecycler.setContent { AppTheme( diff --git a/src/main/kotlin/com/looker/droidify/ui/viewmodels/MainNavFragmentViewModelX.kt b/src/main/kotlin/com/looker/droidify/ui/viewmodels/MainNavFragmentViewModelX.kt index b41e89e9..a8cb8dbb 100644 --- a/src/main/kotlin/com/looker/droidify/ui/viewmodels/MainNavFragmentViewModelX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/viewmodels/MainNavFragmentViewModelX.kt @@ -3,6 +3,7 @@ package com.looker.droidify.ui.viewmodels import androidx.lifecycle.* import com.looker.droidify.content.Preferences import com.looker.droidify.database.DatabaseX +import com.looker.droidify.database.entity.Installed import com.looker.droidify.database.entity.Product import com.looker.droidify.database.entity.Repository import com.looker.droidify.entity.Order @@ -71,6 +72,7 @@ class MainNavFragmentViewModelX( val repositories = MediatorLiveData>() val categories = MediatorLiveData>() + val installed = MediatorLiveData>() init { primaryProducts.addSource( @@ -99,14 +101,20 @@ class MainNavFragmentViewModelX( } } } - if (secondarySource == Source.UPDATES) { - secondaryProducts.addSource(db.installedDao.allLive) { + installed.addSource(db.installedDao.allLive) { + if (primarySource == Source.INSTALLED && secondarySource == Source.UPDATES) { viewModelScope.launch { withContext(Dispatchers.IO) { secondaryProducts.postValue(db.productDao.queryObject(secondaryRequest)) + primaryProducts.postValue( + db.productDao.queryObject( + primaryRequest.value ?: request(primarySource) + ) + ) } } } + installed.postValue(it) } }