From 9719d27c9c9a1779d5d3cd6b4960f60bf60fb025 Mon Sep 17 00:00:00 2001 From: "Andrey.Sh" Date: Tue, 29 Jun 2021 17:25:26 +0500 Subject: [PATCH 1/4] #7 parse hex colors --- .../kotlin/dev/icerock/moko/graphics/Color.kt | 2 ++ .../dev/icerock/moko/graphics/ColorHEX.kt | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt diff --git a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/Color.kt b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/Color.kt index e73acdd..dbe4910 100755 --- a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/Color.kt +++ b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/Color.kt @@ -26,4 +26,6 @@ data class Color( blue = (colorRGBA.shr(8) and 0xFF).toInt(), alpha = (colorRGBA.shr(0) and 0xFF).toInt() ) + + companion object } diff --git a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt new file mode 100644 index 0000000..649cf0a --- /dev/null +++ b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt @@ -0,0 +1,19 @@ +package dev.icerock.moko.graphics + +import java.lang.IllegalArgumentException + +fun Color.Companion.parseColor(colorHEX: String): Color { + if (colorHEX[0] != '#') throw IllegalArgumentException("Unknown color") + var ARGB = colorHEX.substring(1).toLong(16) + if (colorHEX.length == 7) { + ARGB = ARGB or -0x1000000 // Java 0x00000000ff000000 + } else if (colorHEX.length != 9) { + throw IllegalArgumentException("Unknown color") + } + return Color( + alpha = (ARGB.shr(24) and 0xFF).toInt(), + red = (ARGB.shr(16) and 0xFF).toInt(), + green = (ARGB.shr(8) and 0xFF).toInt(), + blue = (ARGB.shr(0) and 0xFF).toInt(), + ) +} From f5ad74e2ebda6efafd2635c4ef715247ca1f40d8 Mon Sep 17 00:00:00 2001 From: "Andry.Sh" Date: Wed, 30 Jun 2021 11:21:05 +0500 Subject: [PATCH 2/4] #7 add copyrights --- .../commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt index 649cf0a..9ac567c 100644 --- a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt +++ b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt @@ -1,3 +1,7 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + package dev.icerock.moko.graphics import java.lang.IllegalArgumentException From 14e57937be0cbb5587c71ae1ac51dc8a143a6843 Mon Sep 17 00:00:00 2001 From: "Andry.Sh" Date: Wed, 30 Jun 2021 11:29:24 +0500 Subject: [PATCH 3/4] #7 clear code --- .../src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt index 9ac567c..4dd0241 100644 --- a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt +++ b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt @@ -10,7 +10,7 @@ fun Color.Companion.parseColor(colorHEX: String): Color { if (colorHEX[0] != '#') throw IllegalArgumentException("Unknown color") var ARGB = colorHEX.substring(1).toLong(16) if (colorHEX.length == 7) { - ARGB = ARGB or -0x1000000 // Java 0x00000000ff000000 + ARGB = ARGB or 0x00000000ff000000 } else if (colorHEX.length != 9) { throw IllegalArgumentException("Unknown color") } From 8dead752d1d18e1e3d13250607eac143cf5e263f Mon Sep 17 00:00:00 2001 From: "Andry.Sh" Date: Wed, 30 Jun 2021 18:49:15 +0500 Subject: [PATCH 4/4] #7 fix imports --- .../src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt index 4dd0241..e4575a7 100644 --- a/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt +++ b/graphics/src/commonMain/kotlin/dev/icerock/moko/graphics/ColorHEX.kt @@ -4,8 +4,6 @@ package dev.icerock.moko.graphics -import java.lang.IllegalArgumentException - fun Color.Companion.parseColor(colorHEX: String): Color { if (colorHEX[0] != '#') throw IllegalArgumentException("Unknown color") var ARGB = colorHEX.substring(1).toLong(16)