For #24114 - Check feature settings to show and hide home screen sections
This commit is contained in:
parent
4f3e891484
commit
48635fb031
|
@ -30,6 +30,7 @@ import org.mozilla.fenix.utils.Settings
|
|||
@Suppress("ComplexMethod", "LongParameterList")
|
||||
@VisibleForTesting
|
||||
internal fun normalModeAdapterItems(
|
||||
settings: Settings,
|
||||
topSites: List<TopSite>,
|
||||
collections: List<TabCollection>,
|
||||
expandedCollections: Set<Long>,
|
||||
|
@ -50,23 +51,23 @@ internal fun normalModeAdapterItems(
|
|||
items.add(AdapterItem.ExperimentDefaultBrowserCard)
|
||||
}
|
||||
|
||||
if (topSites.isNotEmpty()) {
|
||||
if (settings.showTopSitesFeature && topSites.isNotEmpty()) {
|
||||
items.add(AdapterItem.TopSitePager(topSites))
|
||||
}
|
||||
|
||||
if (recentTabs.isNotEmpty()) {
|
||||
if (settings.showRecentTabsFeature && recentTabs.isNotEmpty()) {
|
||||
shouldShowCustomizeHome = true
|
||||
items.add(AdapterItem.RecentTabsHeader)
|
||||
items.add(AdapterItem.RecentTabItem)
|
||||
}
|
||||
|
||||
if (recentBookmarks.isNotEmpty()) {
|
||||
if (settings.showRecentBookmarksFeature && recentBookmarks.isNotEmpty()) {
|
||||
shouldShowCustomizeHome = true
|
||||
items.add(AdapterItem.RecentBookmarksHeader)
|
||||
items.add(AdapterItem.RecentBookmarks)
|
||||
}
|
||||
|
||||
if (recentVisits.isNotEmpty()) {
|
||||
if (settings.historyMetadataUIFeature && recentVisits.isNotEmpty()) {
|
||||
shouldShowCustomizeHome = true
|
||||
items.add(AdapterItem.RecentVisitsHeader)
|
||||
items.add(AdapterItem.RecentVisitsItems)
|
||||
|
@ -80,7 +81,7 @@ internal fun normalModeAdapterItems(
|
|||
showCollections(collections, expandedCollections, items)
|
||||
}
|
||||
|
||||
if (pocketStories.isNotEmpty()) {
|
||||
if (settings.showPocketRecommendationsFeature && pocketStories.isNotEmpty()) {
|
||||
shouldShowCustomizeHome = true
|
||||
items.add(AdapterItem.PocketStoriesItem)
|
||||
items.add(AdapterItem.PocketCategoriesItem)
|
||||
|
@ -148,8 +149,9 @@ private fun onboardingAdapterItems(onboardingState: OnboardingState): List<Adapt
|
|||
return items
|
||||
}
|
||||
|
||||
private fun AppState.toAdapterList(): List<AdapterItem> = when (mode) {
|
||||
private fun AppState.toAdapterList(settings: Settings): List<AdapterItem> = when (mode) {
|
||||
is Mode.Normal -> normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -219,6 +221,6 @@ class SessionControlView(
|
|||
|
||||
if (shouldReportMetrics) interactor.reportSessionMetrics(state)
|
||||
|
||||
sessionControlAdapter.submitList(state.toAdapterList())
|
||||
sessionControlAdapter.submitList(state.toAdapterList(view.context.settings()))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,6 +133,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN recent Bookmarks WHEN normalModeAdapterItems is called THEN add a customize home button`() {
|
||||
val settings: Settings = mockk()
|
||||
val topSites = emptyList<TopSite>()
|
||||
val collections = emptyList<TabCollection>()
|
||||
val expandedCollections = emptySet<Long>()
|
||||
|
@ -141,7 +142,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = emptyList<RecentHistoryGroup>()
|
||||
val pocketArticles = emptyList<PocketRecommendedStory>()
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -161,6 +169,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN recent tabs WHEN normalModeAdapterItems is called THEN add a customize home button`() {
|
||||
val settings: Settings = mockk()
|
||||
val topSites = emptyList<TopSite>()
|
||||
val collections = emptyList<TabCollection>()
|
||||
val expandedCollections = emptySet<Long>()
|
||||
|
@ -169,7 +178,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = emptyList<RecentHistoryGroup>()
|
||||
val pocketArticles = emptyList<PocketRecommendedStory>()
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -189,6 +205,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN history metadata WHEN normalModeAdapterItems is called THEN add a customize home button`() {
|
||||
val settings: Settings = mockk()
|
||||
val topSites = emptyList<TopSite>()
|
||||
val collections = emptyList<TabCollection>()
|
||||
val expandedCollections = emptySet<Long>()
|
||||
|
@ -197,7 +214,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = listOf(RecentHistoryGroup("title", emptyList()))
|
||||
val pocketArticles = emptyList<PocketRecommendedStory>()
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -217,6 +241,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN pocket articles WHEN normalModeAdapterItems is called THEN add a customize home button`() {
|
||||
val settings: Settings = mockk()
|
||||
val topSites = emptyList<TopSite>()
|
||||
val collections = emptyList<TabCollection>()
|
||||
val expandedCollections = emptySet<Long>()
|
||||
|
@ -225,7 +250,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = emptyList<RecentHistoryGroup>()
|
||||
val pocketArticles = listOf(PocketRecommendedStory("", "", "", "", "", 1, 1))
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -246,6 +278,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN none recentBookmarks,recentTabs, historyMetadata or pocketArticles WHEN normalModeAdapterItems is called THEN the customize home button is not added`() {
|
||||
val settings: Settings = mockk()
|
||||
val topSites = emptyList<TopSite>()
|
||||
val collections = emptyList<TabCollection>()
|
||||
val expandedCollections = emptySet<Long>()
|
||||
|
@ -254,7 +287,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = emptyList<RecentHistoryGroup>()
|
||||
val pocketArticles = emptyList<PocketRecommendedStory>()
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
@ -271,6 +311,7 @@ class SessionControlViewTest {
|
|||
|
||||
@Test
|
||||
fun `GIVEN all items THEN top placeholder item is always the first item`() {
|
||||
val settings: Settings = mockk()
|
||||
val collection = mockk<TabCollection> {
|
||||
every { id } returns 123L
|
||||
}
|
||||
|
@ -282,7 +323,14 @@ class SessionControlViewTest {
|
|||
val historyMetadata = listOf<RecentHistoryGroup>(mockk())
|
||||
val pocketArticles = listOf<PocketRecommendedStory>(mockk())
|
||||
|
||||
every { settings.showTopSitesFeature } returns true
|
||||
every { settings.showRecentTabsFeature } returns true
|
||||
every { settings.showRecentBookmarksFeature } returns true
|
||||
every { settings.historyMetadataUIFeature } returns true
|
||||
every { settings.showPocketRecommendationsFeature } returns true
|
||||
|
||||
val results = normalModeAdapterItems(
|
||||
settings,
|
||||
topSites,
|
||||
collections,
|
||||
expandedCollections,
|
||||
|
|
Loading…
Reference in New Issue