diff --git a/navi-uitron/src/main/java/com/navi/uitron/utils/UiTronBrush.kt b/navi-uitron/src/main/java/com/navi/uitron/utils/UiTronBrush.kt index 1d80b99..f59934b 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/utils/UiTronBrush.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/utils/UiTronBrush.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.graphics.SweepGradientShader import com.navi.uitron.model.animations.AnimatedProperties import com.navi.uitron.model.ui.BrushData import com.navi.uitron.model.ui.BrushType +import com.navi.uitron.model.ui.ColorStop import com.navi.uitron.model.ui.OffSetData class UiTronBrush( @@ -204,12 +205,22 @@ class UiTronBrush( } private val colorData: Array> = - brushData?.colorStops?.map { Pair(it.first, it.second.hexToComposeColor) }?.toTypedArray() - ?: arrayOf(Pair(0f, Color.Transparent), Pair(1f, Color.Transparent)) + convertColorStopToColorData(brushData?.colorStops) private val processedColorStops = colorData as Array> private val tileMode = getTileMode(brushData?.tileMode) private val gradientColors = processedColorStops.map { it.second } private val gradientColorStops = processedColorStops.map { it.first } private val gradientWidthMultiplier = brushData?.horizontalEdge ?: 1f private val gradientHeightMultiplier = brushData?.verticalEdge ?: 1f + + private fun convertColorStopToColorData( + colorStops: List? + ): Array> { + return try { + colorStops?.map { Pair(it.first, it.second.hexToComposeColor) }?.toTypedArray() + ?: arrayOf(Pair(0f, Color.Transparent), Pair(1f, Color.Transparent)) + } catch (e: Exception) { + arrayOf(Pair(0f, Color.Transparent), Pair(1f, Color.Transparent)) + } + } }