[fenix] For https://github.com/mozilla-mobile/fenix/issues/26115 - Change homescreen Show all button color according to wallpaper

pull/600/head
Alexandru2909 2 years ago committed by mergify[bot]
parent 367678cad4
commit 40155f3557

@ -4,14 +4,15 @@
package org.mozilla.fenix.compose.home package org.mozilla.fenix.compose.home
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.text.ClickableText import androidx.compose.foundation.text.ClickableText
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.semantics
@ -20,10 +21,14 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import mozilla.components.lib.state.ext.observeAsComposableState
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.components
import org.mozilla.fenix.compose.SectionHeader import org.mozilla.fenix.compose.SectionHeader
import org.mozilla.fenix.compose.inComposePreview
import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.theme.FirefoxTheme
import org.mozilla.fenix.theme.Theme import org.mozilla.fenix.theme.Theme
import org.mozilla.fenix.wallpapers.Wallpaper
/** /**
* Homepage header. * Homepage header.
@ -37,6 +42,47 @@ fun HomeSectionHeader(
headerText: String, headerText: String,
description: String, description: String,
onShowAllClick: () -> Unit onShowAllClick: () -> Unit
) {
if (inComposePreview) {
HomeSectionHeaderContent(
headerText = headerText,
description = description,
onShowAllClick = onShowAllClick
)
} else {
val wallpaperState = components.appStore
.observeAsComposableState { state -> state.wallpaperState }.value
val isWallpaperDefault =
(wallpaperState?.currentWallpaper ?: Wallpaper.Default) == Wallpaper.Default
HomeSectionHeaderContent(
headerText = headerText,
description = description,
showAllTextColor = if (isWallpaperDefault) {
FirefoxTheme.colors.textAccent
} else {
FirefoxTheme.colors.textPrimary
},
onShowAllClick = onShowAllClick,
)
}
}
/**
* Homepage header content.
*
* @param headerText The header string.
* @param description The description for click action
* @param showAllTextColor [Color] for the "Show all" button.
* @param onShowAllClick Invoked when "Show all" button is clicked.
*/
@Composable
private fun HomeSectionHeaderContent(
headerText: String,
description: String,
showAllTextColor: Color = FirefoxTheme.colors.textAccent,
onShowAllClick: () -> Unit,
) { ) {
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
@ -55,7 +101,7 @@ fun HomeSectionHeader(
contentDescription = description contentDescription = description
}, },
style = TextStyle( style = TextStyle(
color = FirefoxTheme.colors.textAccent, color = showAllTextColor,
fontSize = 14.sp fontSize = 14.sp
), ),
onClick = { onShowAllClick() } onClick = { onShowAllClick() }

Loading…
Cancel
Save