Skip to content

Instantly share code, notes, and snippets.

@azazellj
Created May 27, 2024 21:01
Show Gist options
  • Save azazellj/ec84f76ba8eb9989a7f34b99581d80ab to your computer and use it in GitHub Desktop.
Save azazellj/ec84f76ba8eb9989a7f34b99581d80ab to your computer and use it in GitHub Desktop.
internal abstract class ColorGeneratorTask : AbstractGeneratorTask<ComposeColor>() {
companion object {
private val COLOR = ClassName("androidx.compose.ui.graphics", "Color")
}
override val componentClassName: ClassName @Internal get() = COLOR
override val generatedFileName: String @Internal get() = "ThemeColors"
override val rootDSMKey: String @Internal get() = "color"
override fun isTypeToken(field: Any): Boolean = field is JSONObject && field.has("value")
override fun convert(field: Any): ComposeColor {
field as JSONObject
return ComposeColor(value = field.getString("value"))
}
override fun writeTypeToken(key: String, type: ComposeColor): CodeBlock {
return CodeBlock.of("%T(${type.valueFormatted})", componentClassName)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment