WallpaperColorScheme: avoid using brown as a neutral color
It just looks bad
This commit is contained in:
parent
fa62e18a4d
commit
1dd1060254
@ -1,15 +1,50 @@
|
||||
package de.mm20.launcher2.ui.theme.colors
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import de.mm20.launcher2.ui.theme.WallpaperColors
|
||||
|
||||
class WallpaperColorScheme(
|
||||
val wallpaperColors: WallpaperColors
|
||||
wallpaperColors: WallpaperColors
|
||||
) : ColorScheme() {
|
||||
override val neutral1 = colorSwatch(wallpaperColors.primary)
|
||||
override val neutral2 = colorSwatch(wallpaperColors.primary)
|
||||
override val accent1 = colorSwatch(
|
||||
wallpaperColors.tertiary ?: wallpaperColors.secondary ?: wallpaperColors.primary
|
||||
)
|
||||
override val accent2 = colorSwatch(wallpaperColors.secondary ?: wallpaperColors.primary)
|
||||
override val accent3 = colorSwatch(wallpaperColors.primary)
|
||||
override val neutral1: ColorSwatch
|
||||
override val neutral2: ColorSwatch
|
||||
override val accent1: ColorSwatch
|
||||
override val accent2: ColorSwatch
|
||||
override val accent3: ColorSwatch
|
||||
|
||||
init {
|
||||
val primary = wallpaperColors.primary
|
||||
val secondary = wallpaperColors.secondary
|
||||
val tertiary = wallpaperColors.tertiary
|
||||
|
||||
val neutral = primary.takeIf { !isBrown(it) }
|
||||
?: secondary?.takeIf { !isBrown(it) }
|
||||
?: tertiary?.takeIf { isBrown(it) }
|
||||
?: primary
|
||||
|
||||
val acc1: Color = tertiary?.takeIf { it != neutral }
|
||||
?: primary.takeIf { it != neutral }
|
||||
?: secondary?.takeIf { it != neutral }
|
||||
?: primary
|
||||
|
||||
val acc2: Color = secondary?.takeIf { it != neutral }
|
||||
?: primary.takeIf { it != neutral }
|
||||
?: tertiary?.takeIf { it != neutral }
|
||||
?: primary
|
||||
|
||||
|
||||
neutral1 = colorSwatch(neutral)
|
||||
neutral2 = neutral1
|
||||
accent1 = colorSwatch(acc1)
|
||||
accent2 = colorSwatch(acc2)
|
||||
accent3 = neutral1
|
||||
}
|
||||
|
||||
private fun isBrown(color: Color): Boolean {
|
||||
val hsl = floatArrayOf(0f, 0f, 0f)
|
||||
ColorUtils.colorToHSL(color.toArgb(), hsl)
|
||||
return hsl[0] in 0.0..50.0
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user