Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit 027d0cad authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

chore: hide tabs when only a single app source is checked on the Settings screen

parent 1e44b1ad
Loading
Loading
Loading
Loading
+135 −78
Original line number Diff line number Diff line
@@ -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(
@@ -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(
@@ -139,7 +198,7 @@ fun SearchResultsContent(
                onShowMoreClick = onShowMoreClick,
                onPrivacyClick = onPrivacyClick,
                installButtonStateProvider = installButtonStateProvider,
                        modifier = Modifier.fillMaxSize(),
                modifier = modifier,
            )
        }

@@ -155,7 +214,7 @@ fun SearchResultsContent(
                onShowMoreClick = onShowMoreClick,
                onPrivacyClick = onPrivacyClick,
                installButtonStateProvider = installButtonStateProvider,
                        modifier = Modifier.fillMaxSize(),
                modifier = modifier,
            )
        }

@@ -170,13 +229,11 @@ fun SearchResultsContent(
                onShowMoreClick = onShowMoreClick,
                onPrivacyClick = onPrivacyClick,
                installButtonStateProvider = installButtonStateProvider,
                        modifier = Modifier.fillMaxSize(),
                modifier = modifier,
            )
        }
    }
}
    }
}

@Composable
private fun PagingPlayStoreResultList(