From 7d48db455c0e106fbde731f13b85517dd13b45f1 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 26 Aug 2023 19:02:45 +0200 Subject: [PATCH] Clip color swatch click indicator correctly --- .../ui/settings/colorscheme/ColorSwatch.kt | 5 +- .../colorscheme/CorePaletteColorPreference.kt | 4 +- .../colorscheme/ThemeColorPreference.kt | 88 +++++++++---------- 3 files changed, 50 insertions(+), 47 deletions(-) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt index b07a89e1..6e363f48 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt @@ -2,6 +2,7 @@ package de.mm20.launcher2.ui.settings.colorscheme import androidx.compose.foundation.background import androidx.compose.foundation.border +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape @@ -22,7 +23,8 @@ import hct.Hct fun ColorSwatch( color: Color, modifier: Modifier = Modifier, - selected: Boolean = false + selected: Boolean = false, + onClick: (() -> Unit)? = null ) { val darkTheme = LocalDarkTheme.current val iconColor = Color(Hct.fromInt(color.toArgb()).let { @@ -46,6 +48,7 @@ fun ColorSwatch( Box( modifier = modifier .clip(CircleShape) + .clickable(enabled = onClick != null, onClick = onClick ?: {}) .border( if (selected) 4.dp else 1.dp, borderColor, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt index 6bef3a69..ff8f583d 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt @@ -48,8 +48,8 @@ fun CorePaletteColorPreference( color = Color(value ?: defaultValue), modifier = modifier .size(48.dp) - .tooltipTrigger() - .clickable { showDialog = true }, + .tooltipTrigger(), + onClick = { showDialog = true }, ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt index e56d37e8..d6e22f5f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt @@ -75,8 +75,8 @@ fun ThemeColorPreference( color = Color((value ?: defaultValue).get(corePalette)), modifier = modifier .size(48.dp) - .tooltipTrigger() - .clickable { showDialog = true }, + .tooltipTrigger(), + onClick = { showDialog = true }, ) } @@ -176,14 +176,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.Primary, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.Primary, + onClick = { + currentValue = ColorRef( + CorePaletteColor.Primary, + tone.roundToInt() + ) + }, ) Spacer(modifier = Modifier.weight(1f)) ColorSwatch( @@ -194,14 +194,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.Secondary, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.Secondary, + onClick = { + currentValue = ColorRef( + CorePaletteColor.Secondary, + tone.roundToInt() + ) + }, ) Spacer(modifier = Modifier.weight(1f)) ColorSwatch( @@ -212,14 +212,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.Tertiary, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.Tertiary, + onClick = { + currentValue = ColorRef( + CorePaletteColor.Tertiary, + tone.roundToInt() + ) + }, ) } Row( @@ -233,14 +233,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.Neutral, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.Neutral, + onClick = { + currentValue = ColorRef( + CorePaletteColor.Neutral, + tone.roundToInt() + ) + }, ) Spacer(modifier = Modifier.weight(1f)) ColorSwatch( @@ -251,14 +251,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.NeutralVariant, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.NeutralVariant, + onClick = { + currentValue = ColorRef( + CorePaletteColor.NeutralVariant, + tone.roundToInt() + ) + }, ) Spacer(modifier = Modifier.weight(1f)) ColorSwatch( @@ -269,14 +269,14 @@ fun ThemeColorPreference( ), modifier = Modifier .padding(8.dp) - .size(64.dp) - .clickable { - currentValue = ColorRef( - CorePaletteColor.Error, - tone.roundToInt() - ) - }, + .size(64.dp), selected = themeColor.color == CorePaletteColor.Error, + onClick = { + currentValue = ColorRef( + CorePaletteColor.Error, + tone.roundToInt() + ) + }, ) } Row(