Skip to content

Commit a14815c

Browse files
committed
Color Pallet: Update the KvColorPallet library with
* Change the initialization to match the patter in iOS library * Introduce new color attributes to theme-color-pallet * Accepting only KvColor object instead of Color object initially.
1 parent a20343c commit a14815c

File tree

3 files changed

+33
-21
lines changed

3 files changed

+33
-21
lines changed

kv-color-pallet/src/main/kotlin/com/kavi/droid/color/pallet/KvColorPallet.kt

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,34 @@ import com.kavi.droid.color.pallet.util.ThemeGenUtil
1717
/**
1818
* This is the kv-color-pallet android library.
1919
*/
20-
class KvColorPallet(private val givenColor: Color = Color.White) {
20+
class KvColorPallet {
2121

2222
companion object {
23-
var instance: KvColorPallet? = null
23+
/**
24+
* This is a basic initialization without a basic color. When consumer use this initialization, in default KvColorPallet with not
25+
* provide a theme color pallet. Consumer can use this as a singleton.
26+
*/
27+
var instance: KvColorPallet = KvColorPallet()
2428
lateinit var appThemePallet: AppThemePallet
2529

26-
fun init(givenColor: Color) {
27-
instance ?: run {
28-
instance = KvColorPallet(givenColor = givenColor)
29-
}
30+
/**
31+
* KvColorPallet initialization. Consumer can use this to initialize the KvColorPallet from their application delegate if they need a
32+
* Theme color pallet at the application start-up.
33+
*
34+
* On this initiation of kv-color-pallet, we generate a theme color pallet using the given color.
35+
* `basicColor` is mandatory parameter while initiate the library.
36+
*/
37+
fun initialize(basicColor: KvColor) {
38+
val closestColor = ColorUtil.findClosestColor(basicColor.color)
39+
appThemePallet = instance.generateThemeColorPallet(closestColor.color)
3040
}
3141
}
3242

3343
init {
3444
/**
35-
* On initiation of kv-color-pallet, we generate a theme color pallet using the given color.
36-
* `givenColor` is mandatory parameter while initiate the library.
37-
*
38-
* Consumer who is using kv-color-pallet, will get a color pallet for the theme of the application
45+
* This generate theme-pallet with color transparent. This is un-usable.
3946
*/
40-
val closestColor = ColorUtil.findClosestColor(givenColor)
41-
appThemePallet = generateThemeColorPallet(closestColor)
47+
appThemePallet = generateThemeColorPallet(Color.Transparent)
4248
}
4349

4450
/**
@@ -90,7 +96,7 @@ class KvColorPallet(private val givenColor: Color = Color.White) {
9096
* @param givenColor The color to generate the theme color pallet for.
9197
* @return A theme color pallet.
9298
*/
93-
fun generateThemeColorPallet(givenColor: KvColor): AppThemePallet {
99+
fun generateThemeColorPallet(givenColor: Color): AppThemePallet {
94100
return ThemeGenUtil.generateThemeColorSet(givenColor = givenColor)
95101
}
96102
}

kv-color-pallet/src/main/kotlin/com/kavi/droid/color/pallet/model/ThemeColorPallet.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ data class AppThemePallet(
1414
* Color pallet for theme.
1515
*/
1616
data class ThemeColorPallet(
17+
val base: Color,
1718
val primary: Color,
1819
val secondary: Color,
1920
val tertiary: Color,
2021
val background: Color = Color.White,
2122
val onPrimary: Color = Color.White,
2223
val onSecondary: Color = Color.White,
24+
val shadow: Color = Color.Gray
2325
)

kv-color-pallet/src/main/kotlin/com/kavi/droid/color/pallet/util/ThemeGenUtil.kt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ object ThemeGenUtil {
1414
* @param givenColor The color to generate theme color set.
1515
* @return A theme color set. [AppThemePallet]
1616
*/
17-
internal fun generateThemeColorSet(givenColor: KvColor): AppThemePallet {
18-
val closestColor = findClosestColor(givenColor.color)
17+
internal fun generateThemeColorSet(givenColor: Color): AppThemePallet {
18+
val closestColor = findClosestColor(givenColor)
1919

20-
val lightColorPallet = generateLightThemeColorSet(closestColor)
21-
val darkColorPallet = generateDarkThemeColorSet(closestColor)
20+
val lightColorPallet = generateLightThemeColorSet(givenColor, closestColor)
21+
val darkColorPallet = generateDarkThemeColorSet(givenColor, closestColor)
2222

2323
return AppThemePallet(light = lightColorPallet, dark = darkColorPallet)
2424
}
@@ -28,14 +28,16 @@ object ThemeGenUtil {
2828
* @param closestColor The closest color to original consumer given color.
2929
* @return A light theme color set. [ThemeColorPallet]
3030
*/
31-
private fun generateLightThemeColorSet(closestColor: KvColor): ThemeColorPallet {
31+
private fun generateLightThemeColorSet(givenColor: Color, closestColor: KvColor): ThemeColorPallet {
3232
return ThemeColorPallet(
33+
base = givenColor,
3334
primary = closestColor.color,
3435
secondary = generateLightSecondaryColor(closestColor.color),
3536
tertiary = generateLightTeriaryColor(closestColor),
3637
background = generateLightBackgroundColor(closestColor),
3738
onPrimary = Color.White,
38-
onSecondary = Color.White
39+
onSecondary = Color.White,
40+
shadow = Color.Gray
3941
)
4042
}
4143

@@ -44,16 +46,18 @@ object ThemeGenUtil {
4446
* @param closestColor The closest color to original consumer given color.
4547
* @return A dark theme color set. [ThemeColorPallet]
4648
*/
47-
private fun generateDarkThemeColorSet(primaryColor: KvColor): ThemeColorPallet {
49+
private fun generateDarkThemeColorSet(givenColor: Color, primaryColor: KvColor): ThemeColorPallet {
4850
val closestColor = findClosestColor(primaryColor.color)
4951

5052
return ThemeColorPallet(
53+
base = givenColor,
5154
primary = generateDarkPrimaryColor(closestColor.color),
5255
secondary = generateDarkSecondaryColor(closestColor.color),
5356
tertiary = generateDarkTeriaryColor(closestColor),
5457
background = generateDarkBackgroundColor(closestColor.color),
5558
onPrimary = Color.White,
56-
onSecondary = Color.Black
59+
onSecondary = Color.Black,
60+
shadow = Color.White
5761
)
5862
}
5963

0 commit comments

Comments
 (0)