From 8e2a58918cfba7822f5af3f6e4fe7b5d2127f5a7 Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Thu, 20 Nov 2025 18:16:18 +0530 Subject: [PATCH] feat(graphs): add marker guidelines to show on hold Closes: #118 --- .../ui/statsScreen/TimeColumnChart.kt | 15 +++++++++--- .../pomodoro/ui/statsScreen/TimeLineChart.kt | 23 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt index d5a0146..41585c0 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt @@ -58,6 +58,7 @@ import com.patrykandpatrick.vico.core.cartesian.marker.DefaultCartesianMarker import com.patrykandpatrick.vico.core.common.Fill import com.patrykandpatrick.vico.core.common.Insets import com.patrykandpatrick.vico.core.common.shape.CorneredShape +import com.patrykandpatrick.vico.core.common.shape.DashedShape import org.nsh07.pomodoro.ui.theme.TomatoTheme import org.nsh07.pomodoro.utils.millisecondsToHours import org.nsh07.pomodoro.utils.millisecondsToHoursMinutes @@ -112,14 +113,14 @@ fun TimeColumnChart( ), startAxis = VerticalAxis.rememberStart( line = rememberLineComponent(Fill.Transparent), - label = rememberTextComponent(typeface = axisTypeface), + label = rememberTextComponent(colorScheme.onSurface, axisTypeface), tick = rememberLineComponent(Fill.Transparent), guideline = rememberLineComponent(Fill.Transparent), valueFormatter = yValueFormatter ), bottomAxis = HorizontalAxis.rememberBottom( line = rememberLineComponent(Fill.Transparent), - label = rememberTextComponent(typeface = axisTypeface), + label = rememberTextComponent(colorScheme.onSurface, axisTypeface), tick = rememberLineComponent(Fill.Transparent), guideline = rememberLineComponent(Fill.Transparent), valueFormatter = xValueFormatter @@ -137,7 +138,15 @@ fun TimeColumnChart( padding = Insets(verticalDp = 4f, horizontalDp = 8f), margins = Insets(bottomDp = 2f) ), - valueFormatter = markerValueFormatter + valueFormatter = markerValueFormatter, + guideline = rememberLineComponent( + fill = fill(colorScheme.primary), + shape = DashedShape( + shape = CorneredShape.Pill, + dashLengthDp = 16f, + gapLengthDp = 8f + ) + ) ), fadingEdges = rememberFadingEdges() ), diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeLineChart.kt b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeLineChart.kt index e4ba638..29f6e69 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeLineChart.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeLineChart.kt @@ -61,8 +61,10 @@ import com.patrykandpatrick.vico.core.cartesian.marker.DefaultCartesianMarker import com.patrykandpatrick.vico.core.cartesian.marker.LineCartesianLayerMarkerTarget import com.patrykandpatrick.vico.core.common.Fill import com.patrykandpatrick.vico.core.common.Insets +import com.patrykandpatrick.vico.core.common.component.ShapeComponent import com.patrykandpatrick.vico.core.common.shader.ShaderProvider import com.patrykandpatrick.vico.core.common.shape.CorneredShape +import com.patrykandpatrick.vico.core.common.shape.DashedShape import org.nsh07.pomodoro.ui.theme.TomatoTheme import org.nsh07.pomodoro.utils.millisecondsToHours import org.nsh07.pomodoro.utils.millisecondsToHoursMinutes @@ -127,14 +129,14 @@ fun TimeLineChart( ), startAxis = VerticalAxis.rememberStart( line = rememberLineComponent(Fill.Transparent), - label = rememberTextComponent(typeface = axisTypeface), + label = rememberTextComponent(colorScheme.onSurface, axisTypeface), tick = rememberLineComponent(Fill.Transparent), guideline = rememberLineComponent(Fill.Transparent), valueFormatter = yValueFormatter ), bottomAxis = HorizontalAxis.rememberBottom( line = rememberLineComponent(Fill.Transparent), - label = rememberTextComponent(typeface = axisTypeface), + label = rememberTextComponent(colorScheme.onSurface, axisTypeface), tick = rememberLineComponent(Fill.Transparent), guideline = rememberLineComponent(Fill.Transparent), valueFormatter = xValueFormatter @@ -152,7 +154,22 @@ fun TimeLineChart( padding = Insets(verticalDp = 4f, horizontalDp = 8f), margins = Insets(bottomDp = 2f) ), - valueFormatter = markerValueFormatter + valueFormatter = markerValueFormatter, + indicator = { + ShapeComponent( + fill = fill(it), + shape = CorneredShape.Pill, + margins = Insets(3f) + ) + }, + guideline = rememberLineComponent( + fill = fill(colorScheme.primary), + shape = DashedShape( + shape = CorneredShape.Pill, + dashLengthDp = 16f, + gapLengthDp = 8f + ) + ) ), fadingEdges = rememberFadingEdges() ),