From 704beac68c44f0997787ceee1c820da968a35ad8 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 25 Aug 2025 17:11:01 +0800 Subject: [PATCH] compose: search: Hide gms filter on anonymous mode Web API doesn't provides information about dependencies for us to offer this filter Signed-off-by: Aayush Gupta --- .../aurora/store/compose/ui/search/SearchScreen.kt | 14 ++++++++------ .../store/viewmodel/search/SearchViewModel.kt | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt index 880e1a48f..6decba8be 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt @@ -89,7 +89,8 @@ fun SearchScreen(onNavigateUp: () -> Unit, viewModel: SearchViewModel = hiltView onNavigateUp = onNavigateUp, onSearch = { query -> viewModel.search(query) }, onFetchSuggestions = { query -> viewModel.fetchSuggestions(query) }, - onFilter = { filter -> viewModel.filterResults(filter) } + onFilter = { filter -> viewModel.filterResults(filter) }, + isAnonymous = viewModel.authProvider.isAnonymous ) } @@ -100,7 +101,8 @@ private fun ScreenContent( onNavigateUp: () -> Unit = {}, onFetchSuggestions: (String) -> Unit = {}, onSearch: (String) -> Unit = {}, - onFilter: (filter: SearchFilter) -> Unit = {} + onFilter: (filter: SearchFilter) -> Unit = {}, + isAnonymous: Boolean = true ) { val textFieldState = rememberTextFieldState() val searchBarState = rememberSearchBarState() @@ -209,7 +211,7 @@ private fun ScreenContent( .padding(vertical = dimensionResource(R.dimen.padding_medium)) ) { if (textFieldState.text.isNotBlank() && results.itemCount > 0) { - FilterHeader(onFilter = onFilter) + FilterHeader(isAnonymous = isAnonymous, onFilter = onFilter) } LazyColumn { @@ -265,15 +267,15 @@ private fun ScreenContent( } @Composable -private fun FilterHeader(onFilter: (filter: SearchFilter) -> Unit) { +private fun FilterHeader(isAnonymous: Boolean = true, onFilter: (filter: SearchFilter) -> Unit) { var activeFilter by rememberSaveable { mutableStateOf(SearchFilter()) } - val filters = listOf( + val filters = listOfNotNull( R.string.action_filter_rating, R.string.app_info_downloads, R.string.details_free, R.string.action_filter_no_ads, - R.string.action_filter_no_gms + if (!isAnonymous) R.string.action_filter_no_gms else null ) @Composable diff --git a/app/src/main/java/com/aurora/store/viewmodel/search/SearchViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/search/SearchViewModel.kt index 6ef805398..e905c4d29 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/search/SearchViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/search/SearchViewModel.kt @@ -37,7 +37,7 @@ import javax.inject.Inject @HiltViewModel class SearchViewModel @Inject constructor( - private val authProvider: AuthProvider, + val authProvider: AuthProvider, private val searchHelper: SearchHelper, private val webSearchHelper: WebSearchHelper ) : ViewModel() {