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 context = LocalContext.current
val mainActivityX = context as MainActivityX val mainActivityX = context as MainActivityX
val products by viewModel.primaryProducts.observeAsState(null) val products by viewModel.primaryProducts.observeAsState(null)
val categories by viewModel.categories.observeAsState(emptyList())
val installedList by viewModel.installed.observeAsState(null) val installedList by viewModel.installed.observeAsState(null)
val repositories by viewModel.repositories.observeAsState(null) val repositories by viewModel.repositories.observeAsState(null)
val repositoriesMap by remember(repositories) { val repositoriesMap by remember(repositories) {
@ -64,6 +63,18 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery) 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( AppTheme(

View File

@ -69,6 +69,18 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery) 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( 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.background
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
@ -62,6 +62,18 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
viewModel.searchQuery.postValue(newQuery) 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( AppTheme(
@ -101,7 +113,7 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
labelColor = MaterialTheme.colorScheme.onSurface, labelColor = MaterialTheme.colorScheme.onSurface,
), ),
onClick = { onClick = {
mainActivityX.navigateSortFilter(NavItem.Latest.destination) mainActivityX.navigateSortFilter(NavItem.Latest.destination)
}, },
icon = { icon = {
Icon( Icon(