From 1e9dd3f03a7273a3681a282997a52b6462edeca3 Mon Sep 17 00:00:00 2001 From: Iamlooker Date: Sun, 24 Apr 2022 00:54:14 +0530 Subject: [PATCH] Add Util Function to ease life --- .../pages/home/components/CategoryChipList.kt | 6 +++++- .../com/looker/droidify/ui/compose/utils/Chip.kt | 9 +++++---- .../com/looker/droidify/ui/compose/utils/Colors.kt | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 src/main/kotlin/com/looker/droidify/ui/compose/utils/Colors.kt diff --git a/src/main/kotlin/com/looker/droidify/ui/compose/pages/home/components/CategoryChipList.kt b/src/main/kotlin/com/looker/droidify/ui/compose/pages/home/components/CategoryChipList.kt index 27e0ebbb..0f0726a4 100644 --- a/src/main/kotlin/com/looker/droidify/ui/compose/pages/home/components/CategoryChipList.kt +++ b/src/main/kotlin/com/looker/droidify/ui/compose/pages/home/components/CategoryChipList.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.looker.droidify.ui.compose.utils.compositeOverBackground private enum class SelectionState { Unselected, Selected } @@ -49,7 +50,10 @@ private fun categoryChipTransition(selected: Boolean): CategoryChipTransition { val contentColor = transition.animateColor(label = "chip_content_alpha") { state -> when (state) { SelectionState.Unselected -> MaterialTheme.colorScheme.surface - SelectionState.Selected -> MaterialTheme.colorScheme.inversePrimary.copy(alpha = 0.8f) + SelectionState.Selected -> MaterialTheme.colorScheme.primaryContainer.compositeOverBackground( + alpha = 0.8f, + background = MaterialTheme.colorScheme.onBackground + ) } } val checkScale = transition.animateFloat( diff --git a/src/main/kotlin/com/looker/droidify/ui/compose/utils/Chip.kt b/src/main/kotlin/com/looker/droidify/ui/compose/utils/Chip.kt index ea59bd99..ae4d933c 100644 --- a/src/main/kotlin/com/looker/droidify/ui/compose/utils/Chip.kt +++ b/src/main/kotlin/com/looker/droidify/ui/compose/utils/Chip.kt @@ -10,7 +10,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.compositeOver import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -30,11 +29,13 @@ fun CustomChip( shape = Shapes.Full, border = BorderStroke( width = borderWidth, - color = borderColor.copy(0.5f).compositeOver(MaterialTheme.colorScheme.surface) + color = borderColor.compositeOverBackground( + alpha = 0.5f, + MaterialTheme.colorScheme.surface + ) ), colors = chipColors( - backgroundColor = containerColor.copy(0.1f) - .compositeOver(MaterialTheme.colorScheme.background) + backgroundColor = containerColor.compositeOverBackground(alpha = 0.1f) ), onClick = { onClick(text) } ) { diff --git a/src/main/kotlin/com/looker/droidify/ui/compose/utils/Colors.kt b/src/main/kotlin/com/looker/droidify/ui/compose/utils/Colors.kt new file mode 100644 index 00000000..8ab43dfe --- /dev/null +++ b/src/main/kotlin/com/looker/droidify/ui/compose/utils/Colors.kt @@ -0,0 +1,14 @@ +package com.looker.droidify.ui.compose.utils + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.compositeOver + +@Stable +@Composable +fun Color.compositeOverBackground( + alpha: Float, + background: Color = MaterialTheme.colorScheme.background +) = this.copy(alpha).compositeOver(background) \ No newline at end of file