Skip to content

Commit

Permalink
Update selected APIs (WIP)
Browse files Browse the repository at this point in the history
Co-authored-by: Patryk Goworowski <patrykgoworowski@gmail.com>
  • Loading branch information
patrickmichalik and Gowsky committed Sep 14, 2024
1 parent ea32a91 commit 3d84c20
Show file tree
Hide file tree
Showing 110 changed files with 1,431 additions and 2,033 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@ package com.patrykandpatrick.vico.sample.previews.composables.column

import androidx.compose.runtime.Composable
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottomAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStartAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottom
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStart
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberColumnCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.compose.cartesian.rememberVicoScrollState
import com.patrykandpatrick.vico.core.cartesian.AutoScrollCondition
import com.patrykandpatrick.vico.core.cartesian.Scroll
import com.patrykandpatrick.vico.core.cartesian.axis.HorizontalAxis
import com.patrykandpatrick.vico.core.cartesian.axis.VerticalAxis
import com.patrykandpatrick.vico.core.cartesian.data.CartesianChartModel
import com.patrykandpatrick.vico.sample.previews.annotation.ChartPreview
import com.patrykandpatrick.vico.sample.previews.resource.PreviewSurface
Expand All @@ -44,8 +46,8 @@ public fun DefaultColumnChart(
chart =
rememberCartesianChart(
rememberColumnCartesianLayer(),
startAxis = rememberStartAxis(),
bottomAxis = rememberBottomAxis(),
startAxis = VerticalAxis.rememberStart(),
bottomAxis = HorizontalAxis.rememberBottom(),
),
model = model,
scrollState =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ package com.patrykandpatrick.vico.sample.previews.composables.line

import androidx.compose.runtime.Composable
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottomAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStartAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottom
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStart
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberLineCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.compose.cartesian.rememberVicoScrollState
import com.patrykandpatrick.vico.core.cartesian.Scroll
import com.patrykandpatrick.vico.core.cartesian.axis.HorizontalAxis
import com.patrykandpatrick.vico.core.cartesian.axis.VerticalAxis
import com.patrykandpatrick.vico.core.cartesian.data.CartesianChartModel
import com.patrykandpatrick.vico.sample.previews.annotation.ChartPreview
import com.patrykandpatrick.vico.sample.previews.resource.PreviewSurface
Expand All @@ -42,8 +44,8 @@ fun DefaultLineChart(
chart =
rememberCartesianChart(
rememberLineCartesianLayer(),
startAxis = rememberStartAxis(),
bottomAxis = rememberBottomAxis(),
startAxis = VerticalAxis.rememberStart(),
bottomAxis = HorizontalAxis.rememberBottom(),
),
model = model,
scrollState = rememberVicoScrollState(scrollable, initialScroll),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,66 +23,73 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.unit.dp
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberAxisGuidelineComponent
import com.patrykandpatrick.vico.compose.common.component.fixed
import com.patrykandpatrick.vico.compose.common.component.rememberLayeredComponent
import com.patrykandpatrick.vico.compose.common.component.rememberShadow
import com.patrykandpatrick.vico.compose.common.component.rememberShapeComponent
import com.patrykandpatrick.vico.compose.common.component.rememberTextComponent
import com.patrykandpatrick.vico.compose.common.of
import com.patrykandpatrick.vico.compose.common.shape.markerCornered
import com.patrykandpatrick.vico.compose.common.component.shadow
import com.patrykandpatrick.vico.compose.common.component.shapeComponent
import com.patrykandpatrick.vico.compose.common.component.textComponent
import com.patrykandpatrick.vico.compose.common.dimensions
import com.patrykandpatrick.vico.compose.common.shape.markerCorneredShape
import com.patrykandpatrick.vico.core.cartesian.CartesianMeasuringContext
import com.patrykandpatrick.vico.core.cartesian.HorizontalDimensions
import com.patrykandpatrick.vico.core.cartesian.Insets
import com.patrykandpatrick.vico.core.cartesian.data.CartesianChartModel
import com.patrykandpatrick.vico.core.cartesian.marker.CartesianMarker
import com.patrykandpatrick.vico.core.cartesian.marker.DefaultCartesianMarker
import com.patrykandpatrick.vico.core.common.Dimensions
import com.patrykandpatrick.vico.core.common.LayeredComponent
import com.patrykandpatrick.vico.core.common.component.Shadow
import com.patrykandpatrick.vico.core.common.component.ShapeComponent
import com.patrykandpatrick.vico.core.common.component.TextComponent
import com.patrykandpatrick.vico.core.common.copyColor
import com.patrykandpatrick.vico.core.common.shape.Corner
import com.patrykandpatrick.vico.core.common.shape.Shape
import com.patrykandpatrick.vico.core.common.shape.CorneredShape

@Composable
internal fun rememberMarker(
labelPosition: DefaultCartesianMarker.LabelPosition = DefaultCartesianMarker.LabelPosition.Top,
showIndicator: Boolean = true,
): CartesianMarker {
val labelBackgroundShape = Shape.markerCornered(Corner.FullyRounded)
val labelBackgroundShape = remember { markerCorneredShape(Corner.FullyRounded) }
val surfaceBrightColor = MaterialTheme.colorScheme.surfaceBright
val labelBackground =
rememberShapeComponent(
color = MaterialTheme.colorScheme.surfaceBright,
shape = labelBackgroundShape,
shadow =
rememberShadow(
radius = LABEL_BACKGROUND_SHADOW_RADIUS_DP.dp,
dy = LABEL_BACKGROUND_SHADOW_DY_DP.dp,
),
)
remember(surfaceBrightColor) {
shapeComponent(
color = surfaceBrightColor,
shape = labelBackgroundShape,
shadow =
shadow(
radius = LABEL_BACKGROUND_SHADOW_RADIUS_DP.dp,
dy = LABEL_BACKGROUND_SHADOW_DY_DP.dp,
),
)
}
val onSurfaceColor = MaterialTheme.colorScheme.onSurface
val label =
rememberTextComponent(
color = MaterialTheme.colorScheme.onSurface,
textAlignment = Layout.Alignment.ALIGN_CENTER,
padding = Dimensions.of(8.dp, 4.dp),
background = labelBackground,
minWidth = TextComponent.MinWidth.fixed(40.dp),
)
remember(onSurfaceColor, labelBackground) {
textComponent(
color = onSurfaceColor,
textAlignment = Layout.Alignment.ALIGN_CENTER,
padding = dimensions(8.dp, 4.dp),
background = labelBackground,
minWidth = TextComponent.MinWidth.fixed(40.dp),
)
}
val surfaceColor = MaterialTheme.colorScheme.surface
val indicatorFrontComponent =
rememberShapeComponent(MaterialTheme.colorScheme.surface, Shape.Pill)
val indicatorCenterComponent = rememberShapeComponent(shape = Shape.Pill)
val indicatorRearComponent = rememberShapeComponent(shape = Shape.Pill)
remember(surfaceColor) { shapeComponent(surfaceColor, CorneredShape.Pill) }
val indicatorCenterComponent = remember { shapeComponent(shape = CorneredShape.Pill) }
val indicatorRearComponent = remember { shapeComponent(shape = CorneredShape.Pill) }
val indicator =
rememberLayeredComponent(
rear = indicatorRearComponent,
front =
rememberLayeredComponent(
rear = indicatorCenterComponent,
front = indicatorFrontComponent,
padding = Dimensions.of(5.dp),
),
padding = Dimensions.of(10.dp),
)
remember(indicatorFrontComponent) {
LayeredComponent(
rear = indicatorRearComponent,
front =
LayeredComponent(
rear = indicatorCenterComponent,
front = indicatorFrontComponent,
padding = dimensions(5.dp),
),
padding = dimensions(10.dp),
)
}
val guideline = rememberAxisGuidelineComponent()
return remember(label, labelPosition, indicator, showIndicator, guideline) {
object :
Expand All @@ -93,19 +100,19 @@ internal fun rememberMarker(
if (showIndicator) {
{ color ->
LayeredComponent(
rear = ShapeComponent(color.copyColor(alpha = 0.15f), Shape.Pill),
rear = ShapeComponent(color.copyColor(alpha = 0.15f), CorneredShape.Pill),
front =
LayeredComponent(
rear =
ShapeComponent(
color = color,
shape = Shape.Pill,
shape = CorneredShape.Pill,
shadow = Shadow(radiusDp = 12f, color = color),
),
front = indicatorFrontComponent,
padding = Dimensions.of(5.dp),
padding = dimensions(5.dp),
),
padding = Dimensions.of(10.dp),
padding = dimensions(10.dp),
)
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,20 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidViewBinding
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottomAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStartAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottom
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStart
import com.patrykandpatrick.vico.compose.cartesian.cartesianLayerPadding
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberLine
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberLineCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.compose.cartesian.rememberVicoZoomState
import com.patrykandpatrick.vico.compose.common.data.rememberExtraLambda
import com.patrykandpatrick.vico.compose.common.fill
import com.patrykandpatrick.vico.core.cartesian.axis.HorizontalAxis
import com.patrykandpatrick.vico.core.cartesian.axis.VerticalAxis
import com.patrykandpatrick.vico.core.cartesian.data.CartesianChartModelProducer
import com.patrykandpatrick.vico.core.cartesian.data.lineSeries
import com.patrykandpatrick.vico.core.cartesian.layer.LineCartesianLayer
Expand Down Expand Up @@ -68,12 +71,20 @@ private fun ComposeChart1(modelProducer: CartesianChartModelProducer, modifier:
rememberCartesianChart(
rememberLineCartesianLayer(
LineCartesianLayer.LineProvider.series(
rememberLine(remember { LineCartesianLayer.LineFill.single(fill(Color(0xffa485e0))) })
LineCartesianLayer.rememberLine(
remember { LineCartesianLayer.LineFill.single(fill(Color(0xffa485e0))) }
)
)
),
startAxis = rememberStartAxis(),
bottomAxis = rememberBottomAxis(guideline = null),
startAxis = VerticalAxis.rememberStart(),
bottomAxis =
HorizontalAxis.rememberBottom(
guideline = null,
itemPlacer = remember { HorizontalAxis.ItemPlacer.segmented() },
),
marker = marker,
layerPadding =
cartesianLayerPadding(scalableStartPadding = 16.dp, scalableEndPadding = 16.dp),
persistentMarkers = rememberExtraLambda(marker) { marker at PERSISTENT_MARKER_X },
),
modelProducer = modelProducer,
Expand All @@ -91,7 +102,6 @@ private fun ViewChart1(modelProducer: CartesianChartModelProducer, modifier: Mod
with(chartView) {
chart?.persistentMarkers = { marker at PERSISTENT_MARKER_X }
this.modelProducer = modelProducer
chart?.bottomAxis = (chart?.bottomAxis as HorizontalAxis).copy(guideline = null)
chart?.marker = marker
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,12 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidViewBinding
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottomAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStartAxis
import com.patrykandpatrick.vico.compose.cartesian.fullWidth
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottom
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStart
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberCandlestickCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.core.cartesian.HorizontalLayout
import com.patrykandpatrick.vico.core.cartesian.axis.HorizontalAxis
import com.patrykandpatrick.vico.core.cartesian.axis.VerticalAxis
import com.patrykandpatrick.vico.core.cartesian.data.CartesianChartModelProducer
import com.patrykandpatrick.vico.core.cartesian.data.RandomCartesianModelGenerator
import com.patrykandpatrick.vico.databinding.Chart10Binding
Expand Down Expand Up @@ -68,17 +67,16 @@ private fun ComposeChart10(modelProducer: CartesianChartModelProducer, modifier:
chart =
rememberCartesianChart(
rememberCandlestickCartesianLayer(),
startAxis = rememberStartAxis(),
startAxis = VerticalAxis.rememberStart(),
bottomAxis =
rememberBottomAxis(
HorizontalAxis.rememberBottom(
guideline = null,
itemPlacer =
remember {
HorizontalAxis.ItemPlacer.default(spacing = 3, addExtremeLabelPadding = true)
HorizontalAxis.ItemPlacer.aligned(spacing = 3, addExtremeLabelPadding = true)
},
),
marker = marker,
horizontalLayout = HorizontalLayout.fullWidth(),
),
modelProducer = modelProducer,
modifier = modifier,
Expand Down
Loading

0 comments on commit 3d84c20

Please sign in to comment.