fix: Apply correct content color to list items
This commit is contained in:
parent
30db360ef1
commit
3fc4ec3f03
|
@ -38,6 +38,7 @@ import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.ProvideTextStyle
|
import androidx.compose.material3.ProvideTextStyle
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.material3.contentColorFor
|
||||||
import androidx.compose.material3.minimumInteractiveComponentSize
|
import androidx.compose.material3.minimumInteractiveComponentSize
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
|
@ -620,6 +621,10 @@ private enum class Try {
|
||||||
fun FlatItemLayout2(
|
fun FlatItemLayout2(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
backgroundColor: Color,
|
backgroundColor: Color,
|
||||||
|
contentColor: Color = backgroundColor
|
||||||
|
.takeIf { it.isSpecified }
|
||||||
|
?.let { contentColorFor(it) }
|
||||||
|
?: LocalContentColor.current,
|
||||||
content: @Composable ColumnScope.() -> Unit,
|
content: @Composable ColumnScope.() -> Unit,
|
||||||
leading: (@Composable RowScope.() -> Unit)? = null,
|
leading: (@Composable RowScope.() -> Unit)? = null,
|
||||||
trailing: (@Composable RowScope.() -> Unit)? = null,
|
trailing: (@Composable RowScope.() -> Unit)? = null,
|
||||||
|
@ -670,7 +675,7 @@ fun FlatItemLayout2(
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
CompositionLocalProvider(
|
CompositionLocalProvider(
|
||||||
LocalContentColor provides LocalContentColor.current
|
LocalContentColor provides contentColor
|
||||||
.let { color ->
|
.let { color ->
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
color
|
color
|
||||||
|
|
|
@ -68,6 +68,7 @@ import com.artemchep.keyguard.feature.home.vault.component.localSurfaceColorAtEl
|
||||||
import com.artemchep.keyguard.feature.home.vault.component.surfaceColorAtElevationSemi
|
import com.artemchep.keyguard.feature.home.vault.component.surfaceColorAtElevationSemi
|
||||||
import com.artemchep.keyguard.feature.home.vault.model.VaultItemIcon
|
import com.artemchep.keyguard.feature.home.vault.model.VaultItemIcon
|
||||||
import com.artemchep.keyguard.ui.surface.LocalSurfaceColor
|
import com.artemchep.keyguard.ui.surface.LocalSurfaceColor
|
||||||
|
import com.artemchep.keyguard.ui.surface.ProvideSurfaceColor
|
||||||
import com.artemchep.keyguard.ui.theme.combineAlpha
|
import com.artemchep.keyguard.ui.theme.combineAlpha
|
||||||
import kotlinx.collections.immutable.PersistentList
|
import kotlinx.collections.immutable.PersistentList
|
||||||
import kotlinx.collections.immutable.toPersistentList
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
|
@ -416,6 +417,10 @@ fun FlatItemLayout(
|
||||||
contentPadding: PaddingValues = defaultContentPadding,
|
contentPadding: PaddingValues = defaultContentPadding,
|
||||||
elevation: Dp = 0.dp,
|
elevation: Dp = 0.dp,
|
||||||
backgroundColor: Color = Color.Unspecified,
|
backgroundColor: Color = Color.Unspecified,
|
||||||
|
contentColor: Color = backgroundColor
|
||||||
|
.takeIf { it.isSpecified }
|
||||||
|
?.let { contentColorFor(it) }
|
||||||
|
?: LocalContentColor.current,
|
||||||
content: @Composable ColumnScope.() -> Unit,
|
content: @Composable ColumnScope.() -> Unit,
|
||||||
actions: List<FlatItemAction> = emptyList(),
|
actions: List<FlatItemAction> = emptyList(),
|
||||||
leading: (@Composable RowScope.() -> Unit)? = null,
|
leading: (@Composable RowScope.() -> Unit)? = null,
|
||||||
|
@ -424,10 +429,11 @@ fun FlatItemLayout(
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
enabled: Boolean = onClick != null,
|
enabled: Boolean = onClick != null,
|
||||||
) {
|
) {
|
||||||
Column(
|
ContentColorColumn(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(paddingValues),
|
.padding(paddingValues),
|
||||||
|
color = contentColor,
|
||||||
) {
|
) {
|
||||||
val backgroundModifier = kotlin.run {
|
val backgroundModifier = kotlin.run {
|
||||||
// Check if there's actually a background color
|
// Check if there's actually a background color
|
||||||
|
@ -566,6 +572,19 @@ fun FlatItemLayout(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun ContentColorColumn(
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
color: Color,
|
||||||
|
content: @Composable ColumnScope.() -> Unit,
|
||||||
|
) = Column(modifier = modifier) {
|
||||||
|
CompositionLocalProvider(
|
||||||
|
LocalContentColor provides color,
|
||||||
|
) {
|
||||||
|
content()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun RowScope.FlatItemActionContent(
|
fun RowScope.FlatItemActionContent(
|
||||||
action: FlatItemAction,
|
action: FlatItemAction,
|
||||||
|
|
Loading…
Reference in New Issue