Add: Sort/Filter change listeners to Pages

This commit is contained in:
machiav3lli 2022-09-26 02:23:39 +02:00
parent 7c752a2015
commit 553e89f9ff
3 changed files with 38 additions and 3 deletions

View File

@ -49,7 +49,6 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
val context = LocalContext.current
val mainActivityX = context as MainActivityX
val products by viewModel.primaryProducts.observeAsState(null)
val categories by viewModel.categories.observeAsState(emptyList())
val installedList by viewModel.installed.observeAsState(null)
val repositories by viewModel.repositories.observeAsState(null)
val repositoriesMap by remember(repositories) {
@ -64,6 +63,18 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery)
}
}
CoroutineScope(Dispatchers.Default).launch {
Preferences.subject.collect {
when (it) {
Preferences.Key.ReposFilterExplore,
Preferences.Key.CategoriesFilterExplore,
Preferences.Key.SortOrderExplore,
Preferences.Key.SortOrderAscendingExplore ->
viewModel.updatedFilter.postValue(true)
else -> {}
}
}
}
}
AppTheme(

View File

@ -69,6 +69,18 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery)
}
}
CoroutineScope(Dispatchers.Default).launch {
Preferences.subject.collect {
when (it) {
Preferences.Key.ReposFilterInstalled,
Preferences.Key.CategoriesFilterInstalled,
Preferences.Key.SortOrderInstalled,
Preferences.Key.SortOrderAscendingInstalled ->
viewModel.updatedFilter.postValue(true)
else -> {}
}
}
}
}
AppTheme(

View File

@ -1,4 +1,4 @@
package com.machiav3lli.fdroid.ui.pages
package com.machiav3lli.fdroid.ui.pages
import androidx.compose.foundation.background
import androidx.compose.foundation.isSystemInDarkTheme
@ -62,6 +62,18 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery)
}
}
CoroutineScope(Dispatchers.Default).launch {
Preferences.subject.collect {
when (it) {
Preferences.Key.ReposFilterLatest,
Preferences.Key.CategoriesFilterLatest,
Preferences.Key.SortOrderLatest,
Preferences.Key.SortOrderAscendingLatest ->
viewModel.updatedFilter.postValue(true)
else -> {}
}
}
}
}
AppTheme(
@ -101,7 +113,7 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
labelColor = MaterialTheme.colorScheme.onSurface,
),
onClick = {
mainActivityX.navigateSortFilter(NavItem.Latest.destination)
mainActivityX.navigateSortFilter(NavItem.Latest.destination)
},
icon = {
Icon(