From c37f1e550b0a8dde6f5356a163bb41542c131238 Mon Sep 17 00:00:00 2001 From: Mugurell Date: Wed, 1 Sep 2021 12:58:13 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/21045: Cleanup - stick to one naming scheme: rename articles to stories and use this all throughout the app. - add some spacing above the new section (as per the current design) --- .../main/java/org/mozilla/fenix/home/HomeFragment.kt | 2 +- .../java/org/mozilla/fenix/home/HomeFragmentStore.kt | 6 +++--- .../fenix/home/sessioncontrol/SessionControlView.kt | 6 +++--- .../viewholders/pocket/PocketStoriesComposables.kt | 7 +++++-- .../viewholders/pocket/PocketStoriesViewHolder.kt | 12 ++++++++++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index cbd06e363..e3bec2e0f 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -243,7 +243,7 @@ class HomeFragment : Fragment() { if (requireContext().settings().pocketRecommendations) { lifecycleScope.async(IO) { val stories = components.core.pocketStoriesService.getStories() - homeFragmentStore.dispatch(HomeFragmentAction.PocketArticlesChange(stories)) + homeFragmentStore.dispatch(HomeFragmentAction.PocketStoriesChange(stories)) } } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragmentStore.kt index 6c1705596..bd4cf1a37 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragmentStore.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragmentStore.kt @@ -63,7 +63,7 @@ data class HomeFragmentState( val recentTabs: List = emptyList(), val recentBookmarks: List = emptyList(), val historyMetadata: List = emptyList(), - val pocketArticles: List = emptyList() + val pocketStories: List = emptyList() ) : State sealed class HomeFragmentAction : Action { @@ -89,7 +89,7 @@ sealed class HomeFragmentAction : Action { data class RecentTabsChange(val recentTabs: List) : HomeFragmentAction() data class RecentBookmarksChange(val recentBookmarks: List) : HomeFragmentAction() data class HistoryMetadataChange(val historyMetadata: List) : HomeFragmentAction() - data class PocketArticlesChange(val pocketArticles: List) : HomeFragmentAction() + data class PocketStoriesChange(val pocketStories: List) : HomeFragmentAction() object RemoveCollectionsPlaceholder : HomeFragmentAction() object RemoveSetDefaultBrowserCard : HomeFragmentAction() } @@ -132,6 +132,6 @@ private fun homeFragmentStateReducer( is HomeFragmentAction.RecentTabsChange -> state.copy(recentTabs = action.recentTabs) is HomeFragmentAction.RecentBookmarksChange -> state.copy(recentBookmarks = action.recentBookmarks) is HomeFragmentAction.HistoryMetadataChange -> state.copy(historyMetadata = action.historyMetadata) - is HomeFragmentAction.PocketArticlesChange -> state.copy(pocketArticles = action.pocketArticles) + is HomeFragmentAction.PocketStoriesChange -> state.copy(pocketStories = action.pocketStories) } } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt index bc684ab46..588f42b32 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt @@ -41,7 +41,7 @@ internal fun normalModeAdapterItems( showSetAsDefaultBrowserCard: Boolean, recentTabs: List, historyMetadata: List, - pocketArticles: List + pocketStories: List ): List { val items = mutableListOf() var shouldShowCustomizeHome = false @@ -81,7 +81,7 @@ internal fun normalModeAdapterItems( showCollections(collections, expandedCollections, items) } - if (context.settings().pocketRecommendations && pocketArticles.isNotEmpty()) { + if (context.settings().pocketRecommendations && pocketStories.isNotEmpty()) { shouldShowCustomizeHome = true items.add(AdapterItem.PocketStoriesItem) } @@ -161,7 +161,7 @@ private fun HomeFragmentState.toAdapterList(context: Context): List showSetAsDefaultBrowserCard, recentTabs, historyMetadata, - pocketArticles + pocketStories ) is Mode.Private -> privateModeAdapterItems() is Mode.Onboarding -> onboardingAdapterItems(mode.state) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesComposables.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesComposables.kt index e8fd759e9..243e68531 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesComposables.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesComposables.kt @@ -238,12 +238,15 @@ fun PocketRecommendations( * Displays [content] in an expandable card. */ @Composable -fun ExpandableCard(content: @Composable (() -> Unit)) { +fun ExpandableCard( + modifier: Modifier = Modifier, + content: @Composable (() -> Unit) +) { var isExpanded by remember { mutableStateOf(true) } val chevronRotationState by animateFloatAsState(targetValue = if (isExpanded) 0f else 180f) Card( - modifier = Modifier.fillMaxWidth(), + modifier = modifier, shape = RoundedCornerShape(4.dp), onClick = { isExpanded = !isExpanded } ) { diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesViewHolder.kt index 1888d285e..db0f96f8a 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/pocket/PocketStoriesViewHolder.kt @@ -5,9 +5,13 @@ package org.mozilla.fenix.home.sessioncontrol.viewholders.pocket import android.view.View +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.compose.ui.unit.dp import androidx.recyclerview.widget.RecyclerView import mozilla.components.concept.fetch.Client import mozilla.components.lib.state.ext.observeAsComposableState @@ -49,10 +53,14 @@ fun PocketStories( client: Client ) { val stories = store - .observeAsComposableState { state -> state.pocketArticles }.value + .observeAsComposableState { state -> state.pocketStories }.value ?.take(STORIES_TO_SHOW_COUNT) - ExpandableCard { + ExpandableCard( + Modifier + .fillMaxWidth() + .padding(top = 40.dp) + ) { PocketRecommendations { PocketStories( stories ?: emptyList(),