Loading app/src/main/java/foundation/e/apps/ui/compose/components/SearchResultsContent.kt +135 −78 Original line number Diff line number Diff line Loading @@ -77,10 +77,32 @@ fun SearchResultsContent( onPrivacyClick: (Application) -> Unit = {}, installButtonStateProvider: (Application) -> InstallButtonState, ) { if (tabs.isEmpty() || selectedTab !in tabs) { when { tabs.isEmpty() || selectedTab !in tabs -> { return } // Don't show tabs when a single source is checked in the Settings screen tabs.size == 1 -> { SearchTabPage( tab = selectedTab, fossItems = fossItems, pwaItems = pwaItems, playStoreItems = playStoreItems, searchVersion = searchVersion, getScrollPosition = getScrollPosition, onScrollPositionChange = onScrollPositionChange, onResultClick = onResultClick, onPrimaryActionClick = onPrimaryActionClick, onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = modifier.fillMaxSize(), ) return } else -> { val coroutineScope = rememberCoroutineScope() val selectedIndex = tabs.indexOf(selectedTab).coerceAtLeast(0) val pagerState = rememberPagerState( Loading Loading @@ -126,6 +148,43 @@ fun SearchResultsContent( .padding(top = 16.dp), ) { page -> val tab = tabs[page] SearchTabPage( tab = tab, fossItems = fossItems, pwaItems = pwaItems, playStoreItems = playStoreItems, searchVersion = searchVersion, getScrollPosition = getScrollPosition, onScrollPositionChange = onScrollPositionChange, onResultClick = onResultClick, onPrimaryActionClick = onPrimaryActionClick, onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), ) } } } } } @Composable private fun SearchTabPage( tab: SearchTabType, fossItems: LazyPagingItems<Application>?, pwaItems: LazyPagingItems<Application>?, playStoreItems: LazyPagingItems<Application>?, searchVersion: Int, getScrollPosition: (SearchTabType) -> ScrollPosition?, onScrollPositionChange: (SearchTabType, Int, Int) -> Unit, onResultClick: (Application) -> Unit, onPrimaryActionClick: (Application, InstallButtonAction) -> Unit, onShowMoreClick: (Application) -> Unit, onPrivacyClick: (Application) -> Unit, installButtonStateProvider: (Application) -> InstallButtonState, modifier: Modifier = Modifier, ) { when (tab) { SearchTabType.OPEN_SOURCE -> { PagingSearchResultList( Loading @@ -139,7 +198,7 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } Loading @@ -155,7 +214,7 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } Loading @@ -170,13 +229,11 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } } } } } @Composable private fun PagingPlayStoreResultList( Loading Loading
app/src/main/java/foundation/e/apps/ui/compose/components/SearchResultsContent.kt +135 −78 Original line number Diff line number Diff line Loading @@ -77,10 +77,32 @@ fun SearchResultsContent( onPrivacyClick: (Application) -> Unit = {}, installButtonStateProvider: (Application) -> InstallButtonState, ) { if (tabs.isEmpty() || selectedTab !in tabs) { when { tabs.isEmpty() || selectedTab !in tabs -> { return } // Don't show tabs when a single source is checked in the Settings screen tabs.size == 1 -> { SearchTabPage( tab = selectedTab, fossItems = fossItems, pwaItems = pwaItems, playStoreItems = playStoreItems, searchVersion = searchVersion, getScrollPosition = getScrollPosition, onScrollPositionChange = onScrollPositionChange, onResultClick = onResultClick, onPrimaryActionClick = onPrimaryActionClick, onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = modifier.fillMaxSize(), ) return } else -> { val coroutineScope = rememberCoroutineScope() val selectedIndex = tabs.indexOf(selectedTab).coerceAtLeast(0) val pagerState = rememberPagerState( Loading Loading @@ -126,6 +148,43 @@ fun SearchResultsContent( .padding(top = 16.dp), ) { page -> val tab = tabs[page] SearchTabPage( tab = tab, fossItems = fossItems, pwaItems = pwaItems, playStoreItems = playStoreItems, searchVersion = searchVersion, getScrollPosition = getScrollPosition, onScrollPositionChange = onScrollPositionChange, onResultClick = onResultClick, onPrimaryActionClick = onPrimaryActionClick, onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), ) } } } } } @Composable private fun SearchTabPage( tab: SearchTabType, fossItems: LazyPagingItems<Application>?, pwaItems: LazyPagingItems<Application>?, playStoreItems: LazyPagingItems<Application>?, searchVersion: Int, getScrollPosition: (SearchTabType) -> ScrollPosition?, onScrollPositionChange: (SearchTabType, Int, Int) -> Unit, onResultClick: (Application) -> Unit, onPrimaryActionClick: (Application, InstallButtonAction) -> Unit, onShowMoreClick: (Application) -> Unit, onPrivacyClick: (Application) -> Unit, installButtonStateProvider: (Application) -> InstallButtonState, modifier: Modifier = Modifier, ) { when (tab) { SearchTabType.OPEN_SOURCE -> { PagingSearchResultList( Loading @@ -139,7 +198,7 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } Loading @@ -155,7 +214,7 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } Loading @@ -170,13 +229,11 @@ fun SearchResultsContent( onShowMoreClick = onShowMoreClick, onPrivacyClick = onPrivacyClick, installButtonStateProvider = installButtonStateProvider, modifier = Modifier.fillMaxSize(), modifier = modifier, ) } } } } } @Composable private fun PagingPlayStoreResultList( Loading