From 1e75c1bf37ec21d12ecde64a5dfe8c4ac585fa89 Mon Sep 17 00:00:00 2001 From: Himanshu Date: Sun, 9 Feb 2025 00:32:39 +0100 Subject: [PATCH] Fix: Detekt --- charty/detekt.yml | 6 ++++- .../com/himanshoe/charty/bar/BarChart.kt | 7 ++++-- .../charty/bar/ComparisonBarChart.kt | 9 ++++--- .../com/himanshoe/charty/bar/LineBarChart.kt | 23 ++++++++++-------- .../com/himanshoe/charty/pie/PieChart.kt | 6 ++--- .../com/himanshoe/charty/point/PointChart.kt | 1 - .../UserInterfaceState.xcuserstate | Bin 35872 -> 32719 bytes 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/charty/detekt.yml b/charty/detekt.yml index ae4ca8c..71e85d6 100644 --- a/charty/detekt.yml +++ b/charty/detekt.yml @@ -22,9 +22,13 @@ naming: functionPattern: '^[a-z][A-Za-z0-9]*$' ignoreAnnotated: [ "Composable" ] +formatting: + Indentation: + active: false + style: MaxLineLength: - active: false + active: true maxLineLength: 166 MagicNumber: active: false diff --git a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/BarChart.kt b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/BarChart.kt index 6f5f994..6e3557c 100644 --- a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/BarChart.kt +++ b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/BarChart.kt @@ -233,7 +233,8 @@ internal fun getTextYOffsetAndCornerRadius( } val cornerRadius = if (barChartConfig.showCurvedBar) { CornerRadius( - barWidth / 2, barWidth / 2 + x = barWidth / 2, + y = barWidth / 2 ) } else { CornerRadius.Zero @@ -422,7 +423,9 @@ internal fun BarChartCanvasScaffold( val barWidth = (canvasWidth - gap * (data().count() - 1)) / data().count() content( - canvasHeight, gap, barWidth + canvasHeight, + gap, + barWidth ) } } diff --git a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/ComparisonBarChart.kt b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/ComparisonBarChart.kt index 2ae3d1a..71fee7f 100644 --- a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/ComparisonBarChart.kt +++ b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/ComparisonBarChart.kt @@ -103,7 +103,8 @@ private fun ComparisonBarContent( val barWidth = groupWidth / (maxBarsCount * 2) val cornerRadius = if (comparisonBarChartConfig.showCurvedBar) { CornerRadius( - barWidth / 2, barWidth / 2 + x = barWidth / 2, + y = barWidth / 2 ) } else { CornerRadius.Zero @@ -122,9 +123,9 @@ private fun ComparisonBarContent( group.bars.fastForEachIndexed { barIndex, barValue -> val barHeight = (barValue / maxValue) * canvasHeight - val barX = - groupStartX + (groupWidth - (group.bars.size * (barWidth + barWidth / 4))) / 2 + - barIndex * (barWidth + barWidth / 4) + val barX = groupStartX + + (groupWidth - (group.bars.size * (barWidth + barWidth / 4))) / 2 + + barIndex * (barWidth + barWidth / 4) val brush = Brush.linearGradient( colors = group.colors[barIndex].value, diff --git a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/LineBarChart.kt b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/LineBarChart.kt index 3b07436..b159895 100644 --- a/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/LineBarChart.kt +++ b/charty/src/commonMain/kotlin/com/himanshoe/charty/bar/LineBarChart.kt @@ -123,7 +123,7 @@ private fun LineBarChartContent( canvasHeight = canvasHeight, maxHeight = maxHeight ) - val (individualBarTopLeft, individualBarRectSize) = getBarTopLeftAndRectSize( + val (singleBarTopLeft, singleBarRectSize) = getBarTopLeftAndRectSize( index = index, barWidth = barWidth, barData = barData, @@ -143,14 +143,14 @@ private fun LineBarChartContent( ) val (textOffsetY, cornerRadius) = getTextYOffsetAndCornerRadius( barData = barData, - individualBarTopLeft = individualBarTopLeft, + individualBarTopLeft = singleBarTopLeft, textLayoutResult = textLayoutResult, - individualBarRectSize = individualBarRectSize, + individualBarRectSize = singleBarRectSize, barChartConfig = barChartConfig, barWidth = barWidth ) - if (isClickInsideBar(clickedOffset, individualBarTopLeft, individualBarRectSize)) { + if (isClickInsideBar(clickedOffset, singleBarTopLeft, singleBarRectSize)) { clickedBarIndex = index onBarClick(index, barData) } @@ -167,22 +167,25 @@ private fun LineBarChartContent( ) } getDrawingPath( - barTopLeft = individualBarTopLeft, - barRectSize = individualBarRectSize, + barTopLeft = singleBarTopLeft, + barRectSize = singleBarRectSize, topLeftCornerRadius = if (barData.yValue >= 0) cornerRadius else CornerRadius.Zero, topRightCornerRadius = if (barData.yValue >= 0) cornerRadius else CornerRadius.Zero, bottomLeftCornerRadius = if (barData.yValue < 0) cornerRadius else CornerRadius.Zero, bottomRightCornerRadius = if (barData.yValue < 0) cornerRadius else CornerRadius.Zero ).let { + val textOffset = Offset( + x = singleBarTopLeft.x + singleBarRectSize.width.div(2) - textLayoutResult.size.width.div( + 2 + ), + y = textOffsetY, + ) drawPath(path = it, brush = Brush.linearGradient(color)) if (labelConfig.showXLabel) { drawText( textLayoutResult = textLayoutResult, brush = Brush.linearGradient(labelConfig.textColor.value), - topLeft = Offset( - x = individualBarTopLeft.x + individualBarRectSize.width / 2 - textLayoutResult.size.width / 2, - y = textOffsetY, - ), + topLeft = textOffset, ) } } diff --git a/charty/src/commonMain/kotlin/com/himanshoe/charty/pie/PieChart.kt b/charty/src/commonMain/kotlin/com/himanshoe/charty/pie/PieChart.kt index 3d48cce..789b4d0 100644 --- a/charty/src/commonMain/kotlin/com/himanshoe/charty/pie/PieChart.kt +++ b/charty/src/commonMain/kotlin/com/himanshoe/charty/pie/PieChart.kt @@ -76,8 +76,8 @@ private fun PieChartContent( var currentStartAngle = 0f val clickedAngle = ( atan2( - offset.y - size.height / 2, - offset.x - size.width / 2 + y = offset.y - size.height / 2, + x = offset.x - size.width / 2 ) * STRAIGHT_ANGLE / PI + COMPLETE_CIRCLE_DEGREE ) % COMPLETE_CIRCLE_DEGREE angles.fastForEachIndexed { index, sweepAngle -> @@ -138,4 +138,4 @@ private fun PieChartContent( startAngle += sweepAngle } } -} \ No newline at end of file +} diff --git a/charty/src/commonMain/kotlin/com/himanshoe/charty/point/PointChart.kt b/charty/src/commonMain/kotlin/com/himanshoe/charty/point/PointChart.kt index d4e2b54..447817d 100644 --- a/charty/src/commonMain/kotlin/com/himanshoe/charty/point/PointChart.kt +++ b/charty/src/commonMain/kotlin/com/himanshoe/charty/point/PointChart.kt @@ -204,7 +204,6 @@ private fun DrawScope.drawPoints( val animatedRadius = if (index == clickedIndex) circleRadius.value * 1.5f else circleRadius.value - val circleCenter = Offset(x, y) drawCircle( diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/himanshoe.xcuserdatad/UserInterfaceState.xcuserstate b/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/himanshoe.xcuserdatad/UserInterfaceState.xcuserstate index 3c4649d8c08003abf37f283ab91d10dbdca8f802..fddcd5ce97e36a7042f687c3f9f00eb4081e6145 100644 GIT binary patch delta 13141 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 G=l=kt!CpiF delta 15106 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 Q(Dk36*Y&^qbztKE1Mf^WJpcdz