Skip to content

Commit d2d9d8e

Browse files
committed
Remove org.jetbrains.letsPlot.android.compose.PlotPanel
1 parent f4b2f8c commit d2d9d8e

File tree

2 files changed

+26
-57
lines changed

2 files changed

+26
-57
lines changed

lets-plot-compose/src/androidMain/kotlin/org/jetbrains/letsPlot/android/compose/PlotPanel.kt

Lines changed: 0 additions & 51 deletions
This file was deleted.

lets-plot-compose/src/androidMain/kotlin/org/jetbrains/letsPlot/skia/compose/PlotPanel.kt

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@
55

66
package org.jetbrains.letsPlot.skia.compose
77

8-
import androidx.compose.runtime.Composable
8+
import androidx.compose.runtime.*
99
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.viewinterop.AndroidView
1011
import org.jetbrains.letsPlot.Figure
12+
import org.jetbrains.letsPlot.android.canvas.CanvasView
13+
import org.jetbrains.letsPlot.core.util.sizing.SizingPolicy
14+
import org.jetbrains.letsPlot.intern.toSpec
15+
import org.jetbrains.letsPlot.raster.builder.MonolithicCanvas
16+
import org.jetbrains.letsPlot.raster.view.PlotCanvasFigure
1117
import org.jetbrains.letsPlot.skia.compose.util.NaiveLogger
1218

1319
private val LOG = NaiveLogger("PlotPanel")
1420

15-
// TODO: update pacakge? Skia is not used in Android anymore.
1621
@Suppress("FunctionName")
1722
@Composable
1823
actual fun PlotPanel(
@@ -21,10 +26,25 @@ actual fun PlotPanel(
2126
modifier: Modifier,
2227
computationMessagesHandler: (List<String>) -> Unit
2328
) {
24-
org.jetbrains.letsPlot.android.compose.PlotPanel(
25-
figure = figure,
26-
preserveAspectRatio = preserveAspectRatio,
29+
var plotCanvasFigure by remember { mutableStateOf(PlotCanvasFigure()) }
30+
31+
LOG.print { "Recompose PlotPanel()" }
32+
33+
AndroidView(
34+
factory = { ctx ->
35+
LOG.print { "PlotPanel: AndroidView factory called" }
36+
val canvasView = CanvasView(ctx)
37+
canvasView.figure = plotCanvasFigure
38+
canvasView
39+
},
2740
modifier = modifier,
28-
computationMessagesHandler = computationMessagesHandler
41+
update = { canvasView ->
42+
MonolithicCanvas.updatePlotFigureFromRawSpec(
43+
plotCanvasFigure = plotCanvasFigure,
44+
rawSpec = figure.toSpec(),
45+
sizingPolicy = SizingPolicy.fitContainerSize(preserveAspectRatio),
46+
computationMessagesHandler = computationMessagesHandler
47+
)
48+
}
2949
)
3050
}

0 commit comments

Comments
 (0)