diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/ClickableIcon.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/ClickableIcon.kt index 4811009ff3..a2c61771d3 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/ClickableIcon.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/ClickableIcon.kt @@ -17,11 +17,12 @@ import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.rememberVectorPainter import androidx.compose.ui.unit.dp +import app.lawnchair.ui.util.addIf @Composable fun ClickableIcon( painter: Painter, - onClick: () -> Unit, + onClick: (() -> Unit)?, modifier: Modifier = Modifier, tint: Color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current) ) { @@ -31,7 +32,9 @@ fun ClickableIcon( .padding(start = 8.dp) .size(height = 40.dp, width = 40.dp) .clip(CircleShape) - .clickable(onClick = onClick) + .addIf(onClick != null) { + clickable(onClick = onClick!!) + } ) { Icon( painter = painter, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/ColorPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/ColorPreference.kt index 28e622a545..2bda31eb65 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/ColorPreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/ColorPreference.kt @@ -258,11 +258,25 @@ fun ModeRow( ) } if (onEditClick != null) { - ClickableIcon( - painter = painterResource(id = R.drawable.ic_edit), - tint = MaterialTheme.colors.primary, - onClick = onEditClick - ) + Crossfade(targetState = selected) { + if (it) { + ClickableIcon( + painter = painterResource(id = R.drawable.ic_edit), + tint = MaterialTheme.colors.primary, + onClick = onEditClick + ) + } else { + CompositionLocalProvider( + LocalContentAlpha provides ContentAlpha.disabled, + LocalContentColor provides MaterialTheme.colors.primary + ) { + ClickableIcon( + painter = painterResource(id = R.drawable.ic_edit), + onClick = null + ) + } + } + } } } if (showDivider) {