From 874c664eaf26639a838483df2d72859ca4185b34 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Tue, 30 Dec 2025 09:18:45 +0100 Subject: [PATCH 1/2] set data --- .../appdev/chartexample/AnotherBarActivity.kt | 2 +- .../appdev/chartexample/BarChartActivity.kt | 2 +- .../BarChartActivityMultiDataset.kt | 2 +- .../chartexample/BarChartActivitySinus.kt | 2 +- .../chartexample/BarChartPositiveNegative.kt | 2 +- .../appdev/chartexample/BubbleChartActivity.kt | 2 +- .../chartexample/CandleStickChartActivity.kt | 2 +- .../chartexample/CombinedChartActivity.kt | 2 +- .../chartexample/CubicLineChartActivity.kt | 2 +- .../info/appdev/chartexample/DataTools.kt | 4 ++-- .../appdev/chartexample/DrawChartActivity.kt | 8 ++++---- .../chartexample/DynamicalAddingActivity.kt | 12 ++++++------ .../appdev/chartexample/FilledLineActivity.kt | 2 +- .../appdev/chartexample/GradientActivity.kt | 2 +- .../chartexample/HalfPieChartActivity.kt | 2 +- .../chartexample/HorizontalBarChartActivity.kt | 2 +- .../HorizontalBarNegativeChartActivity.kt | 2 +- .../chartexample/InvertedLineChartActivity.kt | 8 ++++---- .../appdev/chartexample/LineChartActivity.kt | 14 +++++++------- .../chartexample/LineChartActivityColored.kt | 2 +- .../chartexample/LineChartDualAxisActivity.kt | 16 ++++++++-------- .../chartexample/LineChartTimeActivity.kt | 12 ++++++------ .../chartexample/ListViewBarChartActivity.kt | 2 +- .../chartexample/MultiLineChartActivity.kt | 14 +++++++------- .../chartexample/PerformanceLineChart.kt | 2 +- .../appdev/chartexample/PieChartActivity.kt | 6 +++--- .../chartexample/PieChartRoundedActivity.kt | 6 +++--- .../chartexample/PiePolylineChartActivity.kt | 4 ++-- .../appdev/chartexample/RadarChartActivity.kt | 10 +++++----- .../chartexample/RealtimeLineChartActivity.kt | 2 +- .../chartexample/ScatterChartActivity.kt | 2 +- .../appdev/chartexample/ScrollViewActivity.kt | 2 +- .../SpecificPositionsLineChartActivity.kt | 18 +++++++++--------- .../appdev/chartexample/StackedBarActivity.kt | 2 +- .../chartexample/StackedBarActivityNegative.kt | 2 +- .../compose/HorizontalBarComposeActivity.kt | 2 +- .../chartexample/fragments/BarChartFrag.kt | 2 +- .../fragments/ComplexityFragment.kt | 2 +- .../chartexample/fragments/PieChartFrag.kt | 2 +- .../chartexample/fragments/ScatterChartFrag.kt | 2 +- .../fragments/SineCosineFragment.kt | 2 +- .../chartexample/listviewitems/BarChartItem.kt | 2 +- .../listviewitems/LineChartItem.kt | 3 +-- .../chartexample/listviewitems/PieChartItem.kt | 2 +- .../appdev/charting/charts/BarLineChartBase.kt | 4 ++-- .../info/appdev/charting/charts/PieChart.kt | 2 +- .../charting/highlight/ChartHighlighter.kt | 2 +- .../charting/highlight/PieHighlighter.kt | 2 +- .../charting/highlight/PieRadarHighlighter.kt | 2 +- .../charting/highlight/RadarHighlighter.kt | 4 ++-- .../listener/BarLineChartTouchListener.kt | 2 +- .../charting/renderer/CombinedChartRenderer.kt | 2 +- .../charting/renderer/PieChartRenderer.kt | 10 +++++----- .../charting/renderer/RadarChartRenderer.kt | 14 +++++++------- .../renderer/XAxisRendererRadarChart.kt | 2 +- .../renderer/YAxisRendererRadarChart.kt | 2 +- 56 files changed, 121 insertions(+), 122 deletions(-) diff --git a/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt index 4de1d5ad2..c4bda6378 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt @@ -89,7 +89,7 @@ class AnotherBarActivity : DemoBase(), OnSeekBarChangeListener { dataSets.add(set1) val data = BarData(dataSets) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.setFitBars(true) } diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt index dede3e2df..821f05165 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt @@ -175,7 +175,7 @@ class BarChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect data.setValueTypeface(tfLight) data.barWidth = 0.9f - binding.chart1.setData(data) + binding.chart1.data = data } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt index 63513c7a3..2c87cbfaf 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt @@ -156,7 +156,7 @@ class BarChartActivityMultiDataset : DemoBase(), OnSeekBarChangeListener, OnChar data.setValueFormatter(LargeValueFormatter()) data.setValueTypeface(tfLight) - binding.chart1.setData(data) + binding.chart1.data = data } // specify the width each bar should have diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt index 5e95dc7e6..f67cf92e7 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt @@ -113,7 +113,7 @@ class BarChartActivitySinus : DemoBase(), OnSeekBarChangeListener { data.setDrawValues(false) data.barWidth = 0.8f - binding.chart1.setData(data) + binding.chart1.data = data } override fun onCreateOptionsMenu(menu: Menu?): Boolean { diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartPositiveNegative.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartPositiveNegative.kt index 71cf2fe97..0e965e2ff 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartPositiveNegative.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartPositiveNegative.kt @@ -123,7 +123,7 @@ class BarChartPositiveNegative : DemoBase() { data.setValueFormatter(ValueFormatter()) data.barWidth = 0.8f - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt index c66ccce5f..bd76ad48a 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt @@ -136,7 +136,7 @@ class BubbleChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSel data.setValueTextColor(Color.WHITE) data.setHighlightCircleWidth(1.5f) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt index f1a02fdff..086e716bd 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt @@ -116,7 +116,7 @@ class CandleStickChartActivity : DemoBase(), OnSeekBarChangeListener { //set1.setHighlightLineWidth(1f); val data = CandleData(set1) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt index 0633bb8ad..9a337a411 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt @@ -92,7 +92,7 @@ class CombinedChartActivity : DemoBase() { xAxis.axisMaximum = data.xMax + 0.25f - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt index cd9e066cc..8abd0a97d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt @@ -128,7 +128,7 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { data.setDrawValues(false) // set data - binding.chart1.setData(data) + binding.chart1.data = data } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt index 386f658e4..c1910f942 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt @@ -155,7 +155,7 @@ class DataTools { values.add(Entry(i.toFloat(), value, ContextCompat.getDrawable(context, R.drawable.star))) } } - lineChart.getData()?.let { + lineChart.data?.let { if (it.dataSetCount > 0) { val lineDataSet0 = it.getDataSetByIndex(0) as LineDataSet lineDataSet0.entries = values @@ -225,7 +225,7 @@ class DataTools { // create a data object with the data sets val data = LineData(dataSets) - lineChart.setData(data) + lineChart.data = data } } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt index 712c502f7..51ad67b3d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt @@ -67,7 +67,7 @@ class DrawChartActivity : DemoBase(), OnChartValueSelectedListener, OnDrawListen // create a data object with the data sets val data = LineData(set1) - binding.chart1.setData(data) + binding.chart1.data = data } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -78,14 +78,14 @@ class DrawChartActivity : DemoBase(), OnChartValueSelectedListener, OnDrawListen override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() @@ -134,7 +134,7 @@ class DrawChartActivity : DemoBase(), OnChartValueSelectedListener, OnDrawListen Timber.i("DataSet drawn. ${dataSet.toSimpleString()}") // prepare the legend again - binding.chart1.getData()?.let { binding.chart1.legendRenderer?.computeLegend(it) } + binding.chart1.data?.let { binding.chart1.legendRenderer?.computeLegend(it) } } override fun onEntryMoved(entry: Entry) { diff --git a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt index c9f6f74e3..93ec98487 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt @@ -44,11 +44,11 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { private val colors: IntArray = ColorTemplate.VORDIPLOM_COLORS private fun addEntry() { - var data = binding.chart1.getData() + var data = binding.chart1.data if (data == null) { data = LineData() - binding.chart1.setData(data) + binding.chart1.data = data } var set = data.getDataSetByIndex(0) @@ -81,7 +81,7 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { } private fun removeLastEntry() { - val data = binding.chart1.getData() + val data = binding.chart1.data if (data != null) { val set = data.getDataSetByIndex(0) @@ -100,10 +100,10 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { } private fun addDataSet() { - val data = binding.chart1.getData() + val data = binding.chart1.data if (data == null) { - binding.chart1.setData(LineData()) + binding.chart1.data = LineData() } else { val count = (data.dataSetCount + 1) val amount = data.getDataSetByIndex(0)?.entryCount ?: 0 @@ -136,7 +136,7 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { } private fun removeDataSet() { - val data = binding.chart1.getData() + val data = binding.chart1.data if (data != null) { data.removeDataSet(data.getDataSetByIndex(data.dataSetCount - 1)) diff --git a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt index bd28eff2c..27888fc20 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt @@ -145,7 +145,7 @@ class FilledLineActivity : DemoBase() { val data = LineData(dataSets) data.setDrawValues(false) - binding.chart1.setData(data) + binding.chart1.data = data } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/GradientActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/GradientActivity.kt index 141429f03..94a3d502f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/GradientActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/GradientActivity.kt @@ -69,7 +69,7 @@ class GradientActivity : DemoBase() { } binding.chart.axisLeft.axisMinimum = 0f - binding.chart.setData(LineData(dataSet)) + binding.chart.data = LineData(dataSet) binding.chart.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/HalfPieChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/HalfPieChartActivity.kt index c192f62a6..6539e90c2 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/HalfPieChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/HalfPieChartActivity.kt @@ -102,7 +102,7 @@ class HalfPieChartActivity : DemoBase() { data.setValueTextSize(11f) data.setValueTextColor(Color.WHITE) data.setValueTypeface(tfLight) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt index 8a54acadb..18cd96eff 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt @@ -135,7 +135,7 @@ class HorizontalBarChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartV data.setValueTextSize(10f) data.setValueTypeface(tfLight) data.barWidth = barWidth - binding.chart1.setData(data) + binding.chart1.data = data } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt index 99b712773..dd71390a2 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt @@ -131,7 +131,7 @@ class HorizontalBarNegativeChartActivity : DemoBase(), OnSeekBarChangeListener, data.setValueTextSize(10f) data.setValueTypeface(tfLight) data.barWidth = barWidth - binding.chart1.setData(data) + binding.chart1.data = data } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt index 6508a2a6f..db3f576b0 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt @@ -114,7 +114,7 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa val data = LineData(set1) // set data - binding.chart1.setData(data) + binding.chart1.data = data } override fun onCreateOptionsMenu(menu: Menu?): Boolean { @@ -139,21 +139,21 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt index 69feb056b..d1b779648 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt @@ -160,35 +160,35 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec } R.id.actionToggleIcons -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawIcons = !set.isDrawIcons } binding.chart1.invalidate() } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled binding.chart1.invalidate() } } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled binding.chart1.invalidate() } } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.map { it as LineDataSet }?.forEach { set -> + binding.chart1.data?.dataSets?.map { it as LineDataSet }?.forEach { set -> set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() } R.id.actionToggleCubic -> { - binding.chart1.getData()?.dataSets?.map { it as LineDataSet }?.forEach { set -> + binding.chart1.data?.dataSets?.map { it as LineDataSet }?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.CUBIC_BEZIER) LineDataSet.Mode.LINEAR else @@ -198,7 +198,7 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec } R.id.actionToggleStepped -> { - binding.chart1.getData()?.dataSets?.map { it as LineDataSet }?.forEach { set -> + binding.chart1.data?.dataSets?.map { it as LineDataSet }?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.STEPPED) LineDataSet.Mode.LINEAR else @@ -208,7 +208,7 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec } R.id.actionToggleHorizontalCubic -> { - binding.chart1.getData()?.dataSets?.map { it as LineDataSet }?.forEach { set -> + binding.chart1.data?.dataSets?.map { it as LineDataSet }?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.HORIZONTAL_BEZIER) LineDataSet.Mode.LINEAR else diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivityColored.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivityColored.kt index 7a6deb947..f51dc1042 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivityColored.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivityColored.kt @@ -77,7 +77,7 @@ class LineChartActivityColored : DemoBase() { chart.setViewPortOffsets(10f, 0f, 10f, 0f) // add data - chart.setData(data) + chart.data = data // get the legend (only possible after setting data) chart.legend.apply { diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt index 87fe7eab4..b9ab32995 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt @@ -196,7 +196,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa data.setValueTextSize(9f) // set data - binding.chart1.setData(data) + binding.chart1.data = data } } @@ -215,35 +215,35 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa } R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawValues = !set.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() } R.id.actionToggleCubic -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.CUBIC_BEZIER) LineDataSet.Mode.LINEAR else @@ -253,7 +253,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa } R.id.actionToggleStepped -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.STEPPED) LineDataSet.Mode.LINEAR else @@ -263,7 +263,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa } R.id.actionToggleHorizontalCubic -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.lineMode = if (set.lineMode == LineDataSet.Mode.HORIZONTAL_BEZIER) LineDataSet.Mode.LINEAR else diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt index b3b03215f..0e97c86b1 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt @@ -141,7 +141,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { data.setValueTextSize(9f) // set data - binding.chart1.setData(data) + binding.chart1.data = data } override fun onCreateOptionsMenu(menu: Menu?): Boolean { @@ -166,28 +166,28 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() } R.id.actionToggleCubic -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> if (set.lineMode == LineDataSet.Mode.CUBIC_BEZIER) set.lineMode = LineDataSet.Mode.LINEAR else @@ -197,7 +197,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { } R.id.actionToggleStepped -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> if (set.lineMode == LineDataSet.Mode.STEPPED) set.lineMode = LineDataSet.Mode.LINEAR else diff --git a/app/src/main/kotlin/info/appdev/chartexample/ListViewBarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ListViewBarChartActivity.kt index 19f881231..0d7b9f548 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ListViewBarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ListViewBarChartActivity.kt @@ -90,7 +90,7 @@ class ListViewBarChartActivity : DemoBase() { spaceTop = 15f } - holder.chart?.setData(data) + holder.chart?.data = data holder.chart?.setFitBars(true) // do not forget to refresh the chart diff --git a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt index cca755461..6da953cad 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt @@ -110,7 +110,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu (dataSets[0] as LineDataSet).setCircleColors(*ColorTemplate.VORDIPLOM_COLORS) val data = LineData(dataSets) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } @@ -149,21 +149,21 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { data -> + binding.chart1.data?.let { data -> data.isHighlightEnabled = !data.isHighlightEnabled } binding.chart1.invalidate() } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> if (set is LineDataSet) { set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } @@ -172,7 +172,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu } R.id.actionToggleCubic -> { - binding.chart1.getData()?.dataSets?.forEach { iSet -> + binding.chart1.data?.dataSets?.forEach { iSet -> val set = iSet as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.CUBIC_BEZIER) LineDataSet.Mode.LINEAR @@ -183,7 +183,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu } R.id.actionToggleStepped -> { - binding.chart1.getData()?.dataSets?.forEach { iSet -> + binding.chart1.data?.dataSets?.forEach { iSet -> val set = iSet as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.STEPPED) LineDataSet.Mode.LINEAR @@ -194,7 +194,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu } R.id.actionToggleHorizontalCubic -> { - binding.chart1.getData()?.dataSets?.forEach { iSet -> + binding.chart1.data?.dataSets?.forEach { iSet -> val set = iSet as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.HORIZONTAL_BEZIER) LineDataSet.Mode.LINEAR diff --git a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt index 2f2020005..c951ec4ce 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt @@ -75,7 +75,7 @@ class PerformanceLineChart : DemoBase(), OnSeekBarChangeListener { val data = LineData(set1) // set data - binding.chart1.setData(data) + binding.chart1.data = data // get the legend (only possible after setting data) binding.chart1.legend.apply { diff --git a/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt index 768373e88..21ebd4f9b 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt @@ -145,7 +145,7 @@ class PieChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect data.setValueTextSize(11f) data.setValueTextColor(Color.WHITE) data.setValueTypeface(tfLight) - binding.chart1.setData(data) + binding.chart1.data = data // undo all highlights binding.chart1.highlightValues(null) @@ -168,14 +168,14 @@ class PieChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect } R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleIcons -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawIcons = !set.isDrawIcons } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt index b1ff3bccf..d14269935 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt @@ -146,7 +146,7 @@ class PieChartRoundedActivity : DemoBase(), OnSeekBarChangeListener, OnChartValu data.setValueTextSize(11f) data.setValueTextColor(Color.WHITE) data.setValueTypeface(tfLight) - binding.chart1.setData(data) + binding.chart1.data = data // undo all highlights binding.chart1.highlightValues(null) @@ -172,14 +172,14 @@ class PieChartRoundedActivity : DemoBase(), OnSeekBarChangeListener, OnChartValu } R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleIcons -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawIcons = !set.isDrawIcons } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt index b0299bb53..18926123f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt @@ -139,7 +139,7 @@ class PiePolylineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVal data.setValueTextSize(11f) data.setValueTextColor(Color.BLACK) data.setValueTypeface(tf) - binding.chart1.setData(data) + binding.chart1.data = data // undo all highlights binding.chart1.highlightValues(null) @@ -161,7 +161,7 @@ class PiePolylineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVal } R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt index 639366f97..307927d87 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt @@ -132,7 +132,7 @@ class RadarChartActivity : DemoBase() { data.setDrawValues(false) data.setValueTextColor(Color.WHITE) - binding.chart1.setData(data) + binding.chart1.data = data val colorList: MutableList = ArrayList() colorList.add(Color.rgb(222, 166, 111)) colorList.add(Color.rgb(220, 206, 138)) @@ -157,14 +157,14 @@ class RadarChartActivity : DemoBase() { } R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() @@ -176,14 +176,14 @@ class RadarChartActivity : DemoBase() { } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } R.id.actionToggleHighlightCircle -> { - binding.chart1.getData()?.dataSets?.forEach { set -> + binding.chart1.data?.dataSets?.forEach { set -> set.isDrawHighlightCircleEnabled = !set.isDrawHighlightCircleEnabled } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt index 4c76f774f..024ed2a44 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt @@ -54,7 +54,7 @@ class RealtimeLineChartActivity : DemoBase(), OnChartValueSelectedListener { data.setValueTextColor(Color.WHITE) // add empty data - binding.chart1.setData(data) + binding.chart1.data = data // get the legend (only possible after setting data) binding.chart1.legend.apply { diff --git a/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt index 2f62a3c51..e0ea67e63 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt @@ -123,7 +123,7 @@ class ScatterChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSe val data = ScatterData(dataSets) data.setValueTypeface(tfLight) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt index 5f1ba0145..2be6db20e 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt @@ -58,7 +58,7 @@ class ScrollViewActivity : DemoBase() { val data = BarData(set) - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() binding.chart1.animateY(800) } diff --git a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt index 934040c11..eb240619f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt @@ -128,21 +128,21 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.actionToggleValues -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { it.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleHighlight -> { - binding.chart1.getData()?.let { + binding.chart1.data?.let { it.isHighlightEnabled = !it.isHighlightEnabled } binding.chart1.invalidate() } R.id.actionToggleFilled -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { val set = it as LineDataSet set.isDrawFilledEnabled = !set.isDrawFilledEnabled } @@ -150,7 +150,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, } R.id.actionToggleCircles -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { val set = it as LineDataSet set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } @@ -158,7 +158,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, } R.id.actionToggleCubic -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { val set = it as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.CUBIC_BEZIER) LineDataSet.Mode.LINEAR else LineDataSet.Mode.CUBIC_BEZIER } @@ -166,7 +166,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, } R.id.actionToggleStepped -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { val set = it as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.STEPPED) LineDataSet.Mode.LINEAR else LineDataSet.Mode.STEPPED } @@ -174,7 +174,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, } R.id.actionToggleHorizontalCubic -> { - binding.chart1.getData()?.dataSets?.forEach { + binding.chart1.data?.dataSets?.forEach { val set = it as LineDataSet set.lineMode = if (set.lineMode == LineDataSet.Mode.HORIZONTAL_BEZIER) LineDataSet.Mode.LINEAR else LineDataSet.Mode.HORIZONTAL_BEZIER } @@ -232,7 +232,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, val `val` = (sampleValues[i]!!.toFloat() * range) + 3 values.add(Entry(i.toFloat(), `val`)) } - binding.chart1.getData()?.let { + binding.chart1.data?.let { if (it.dataSetCount > 0) { val set1 = it.getDataSetByIndex(0) as LineDataSet set1.entries = values @@ -276,7 +276,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, val data = LineData(dataSets) // set data - binding.chart1.setData(data) + binding.chart1.data = data } override fun onChartGestureStart(me: MotionEvent, lastPerformedGesture: ChartGesture?) { diff --git a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt index 079fb7567..17df2ebc4 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt @@ -129,7 +129,7 @@ class StackedBarActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSele data.setValueFormatter(MyValueFormatter()) data.setValueTextColor(Color.WHITE) - binding.chart1.setData(data) + binding.chart1.data = data } binding.chart1.setFitBars(true) diff --git a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt index 03bc1c362..3e79cbdb5 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt @@ -111,7 +111,7 @@ class StackedBarActivityNegative : DemoBase(), OnChartValueSelectedListener { val data = BarData(set) data.barWidth = 8.5f - binding.chart1.setData(data) + binding.chart1.data = data binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt index bd76ab196..ce4078f6d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt @@ -368,7 +368,7 @@ class HorizontalBarComposeActivity : DemoBaseCompose() { data.setValueTextSize(10f) data.setValueTypeface(tfLight) data.barWidth = barWidth - localChart.setData(data) + localChart.data = data } localChart.setFitBars(true) diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/BarChartFrag.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/BarChartFrag.kt index 3318a7def..a54c2b2ac 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/BarChartFrag.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/BarChartFrag.kt @@ -44,7 +44,7 @@ class BarChartFrag : SimpleFragment(), OnChartGestureListener { val tf = Typeface.createFromAsset(requireContext().assets, "OpenSans-Light.ttf") - chart.setData(generateBarData(1, 20000f)) + chart.data = generateBarData(1, 20000f) chart.legend.apply { typeface = tf diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/ComplexityFragment.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/ComplexityFragment.kt index 33c86fd91..1f893ee20 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/ComplexityFragment.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/ComplexityFragment.kt @@ -27,7 +27,7 @@ class ComplexityFragment : SimpleFragment() { binding.lineChart1.setDrawGridBackground(false) - binding.lineChart1.setData(complexity) + binding.lineChart1.data = complexity binding.lineChart1.animateX(3000) val tf = Typeface.createFromAsset(requireContext().assets, "OpenSans-Light.ttf") diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/PieChartFrag.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/PieChartFrag.kt index c6ec28c92..012f54244 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/PieChartFrag.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/PieChartFrag.kt @@ -48,7 +48,7 @@ class PieChartFrag : SimpleFragment() { setDrawInside(false) } - binding.pieChart1.setData(generatePieData()) + binding.pieChart1.data = generatePieData() return view } diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/ScatterChartFrag.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/ScatterChartFrag.kt index d57ab5095..fb2b5ee63 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/ScatterChartFrag.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/ScatterChartFrag.kt @@ -34,7 +34,7 @@ class ScatterChartFrag : SimpleFragment() { binding.scatterChart1.setMarker(markerView) binding.scatterChart1.setDrawGridBackground(false) - binding.scatterChart1.setData(generateScatterData(6, 10000f)) + binding.scatterChart1.data = generateScatterData(6, 10000f) val xAxis = binding.scatterChart1.xAxis xAxis.isEnabled = true diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/SineCosineFragment.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/SineCosineFragment.kt index 1a9d9a787..e05718faa 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/SineCosineFragment.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/SineCosineFragment.kt @@ -27,7 +27,7 @@ class SineCosineFragment : SimpleFragment() { binding.lineChart1.setDrawGridBackground(false) - binding.lineChart1.setData(generateLineData()) + binding.lineChart1.data = generateLineData() binding.lineChart1.animateX(3000) val tf = Typeface.createFromAsset(requireContext().assets, "OpenSans-Light.ttf") diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt index 57b3a9af0..87c73ef35 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt @@ -61,7 +61,7 @@ class BarChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chartD chartData.setValueTypeface(typeface) // set data - holder.chart!!.setData(chartData as BarData?) + holder.chart!!.data = chartData holder.chart!!.setFitBars(true) // do not forget to refresh the chart diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt index 74e664e94..7dff1fac2 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt @@ -57,8 +57,7 @@ class LineChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chart rightAxis.setDrawGridLines(false) rightAxis.axisMinimum = 0f // this replaces setStartAtZero(true) - // set data - holder.chart!!.setData(chartData as LineData?) + holder.chart!!.data = chartData // do not forget to refresh the chart // holder.chart.invalidate(); diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt index 2c5d20549..e1933b27f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt @@ -62,7 +62,7 @@ class PieChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chartD chartData.setValueTextSize(11f) chartData.setValueTextColor(Color.WHITE) // set data - holder.chart?.setData(chartData as PieData?) + holder.chart?.data = chartData holder.chart?.legend?.apply { verticalAlignment = Legend.LegendVerticalAlignment.TOP diff --git a/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt b/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt index b45fae6a6..aaec869b7 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt @@ -210,7 +210,7 @@ abstract class BarLineChartBase { override val accessibilityDescription: String get() { - val pieData = getData() + val pieData = data var entryCount = 0 if (pieData != null) entryCount = pieData.entryCount diff --git a/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt b/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt index e8a76d813..fa0379446 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt @@ -186,5 +186,5 @@ open class ChartHighlighter(protecte } protected open val data: ChartData<*>? - get() = provider.getData() + get() = provider.data } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieHighlighter.kt b/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieHighlighter.kt index a4c590feb..4db963900 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieHighlighter.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieHighlighter.kt @@ -5,7 +5,7 @@ import info.appdev.charting.data.Entry open class PieHighlighter(chart: PieChart) : PieRadarHighlighter(chart) { override fun getClosestHighlight(index: Int, x: Float, y: Float): Highlight? { - val pieDataSet = chartPieRadar.getData()!!.dataSets!![0] + val pieDataSet = chartPieRadar.data!!.dataSets!![0] val entry: Entry? = pieDataSet.getEntryForIndex(index) diff --git a/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieRadarHighlighter.kt b/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieRadarHighlighter.kt index 76c5e468b..d2aec0ea3 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieRadarHighlighter.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/highlight/PieRadarHighlighter.kt @@ -23,7 +23,7 @@ abstract class PieRadarHighlighter>(protected var chart val index = chartPieRadar.getIndexForAngle(angle) - val localData = chartPieRadar.getData() + val localData = chartPieRadar.data val maxCount = localData?.maxEntryCountSet?.entryCount ?: 0 return if (index !in 0.. val factor = chartPieRadar.factor val pOut = PointF.getInstance(0f, 0f) - for (i in 0.. 0) { + if (chart.isDoubleTapToZoomEnabled && chart.data!!.entryCount > 0) { val trans = getTrans(e.x, e.y) val scaleX = if (chart.isScaleXEnabled) 1.4f else 1f diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt index 0d4bbc97d..bbf551ee1 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt @@ -88,7 +88,7 @@ open class CombinedChartRenderer( val dataIndex = if (data == null) -1 else - (chart.getData() as CombinedData).allData.indexOf(data) + (chart.data as CombinedData).allData.indexOf(data) mHighlightBuffer.clear() diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/PieChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/PieChartRenderer.kt index f85ee6362..5b2d76de7 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/PieChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/PieChartRenderer.kt @@ -103,7 +103,7 @@ open class PieChartRenderer( drawBitmap.eraseColor(Color.TRANSPARENT) - val pieData = chart.getData() + val pieData = chart.data for (set in pieData?.dataSets ?: return) { if (set.isVisible && set.entryCount > 0) drawDataSet(set) @@ -162,7 +162,7 @@ open class PieChartRenderer( return dataSet.sliceSpace val spaceSizeRatio = dataSet.sliceSpace / viewPortHandler.smallestContentExtension - val minValueRatio = dataSet.yMin / chart.getData()!!.yValueSum * 2 + val minValueRatio = dataSet.yMin / chart.data!!.yValueSum * 2 val sliceSpace = if (spaceSizeRatio > minValueRatio) 0f else dataSet.sliceSpace @@ -377,7 +377,7 @@ open class PieChartRenderer( val labelRadius = radius - labelRadiusOffset - val data = chart.getData() + val data = chart.data val dataSets = data!!.dataSets val yValueSum = data.yValueSum @@ -769,7 +769,7 @@ open class PieChartRenderer( if (index >= drawAngles.size) continue - val set = chart.getData()?.getDataSetByIndex(indices[i].dataSetIndex) + val set = chart.data?.getDataSetByIndex(indices[i].dataSetIndex) if (set == null || !set.isHighlightEnabled) continue @@ -910,7 +910,7 @@ open class PieChartRenderer( if (!chart.isDrawRoundedSlicesEnabled) return - val dataSet = chart.getData()!!.dataSet + val dataSet = chart.data!!.dataSet if (!dataSet.isVisible) return diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt index d153a9c30..cc766ed8e 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt @@ -33,7 +33,7 @@ open class RadarChartRenderer( override fun initBuffers() = Unit override fun drawData(canvas: Canvas) { - chart.getData()?.let { radarData -> + chart.data?.let { radarData -> val mostEntries = radarData.maxEntryCountSet?.entryCount ?: 0 @@ -129,10 +129,10 @@ open class RadarChartRenderer( val yOffset = 5f.convertDpToPixel() - for (i in 0.. + for (i in 0.. - chart.getData()!!.getDataSetByIndex(i) + chart.data!!.getDataSetByIndex(i) if (dataSet.entryCount == 0) { continue } @@ -218,7 +218,7 @@ open class RadarChartRenderer( webPaint.alpha = chart.webAlpha val xIncrements = 1 + chart.skipWebLineCount - val maxEntryCount = chart.getData()!!.maxEntryCountSet?.entryCount ?: 0 + val maxEntryCount = chart.data!!.maxEntryCountSet?.entryCount ?: 0 var p = PointF.getInstance(0f, 0f) var i = 0 @@ -247,7 +247,7 @@ open class RadarChartRenderer( innerAreaPath.rewind() paint.color = chart.layerColorList[j] } - for (i in 0.. + chart.data!!.maxEntryCountSet?.let { maxEntryCountSet -> for (i in 0.. + chart.data!!.maxEntryCountSet?.let { maxEntryCountSet -> for (j in 0.. Date: Tue, 30 Dec 2025 09:18:59 +0100 Subject: [PATCH 2/2] Data as var (the magic) --- .../ListViewMultiChartActivity.kt | 4 +- .../listviewitems/BarChartItem.kt | 3 +- .../chartexample/listviewitems/ChartItem.kt | 2 +- .../listviewitems/LineChartItem.kt | 3 +- .../listviewitems/PieChartItem.kt | 3 +- .../charting/charts/BarLineChartBase.kt | 2 +- .../info/appdev/charting/charts/Chart.kt | 64 ++++---- .../appdev/charting/charts/CombinedChart.kt | 144 ++++++++++++++++-- .../charting/highlight/ChartHighlighter.kt | 2 +- .../dataprovider/BarDataProvider.kt | 2 +- .../dataprovider/BubbleDataProvider.kt | 2 +- .../dataprovider/CandleDataProvider.kt | 2 +- .../dataprovider/CombinedDataProvider.kt | 13 +- .../dataprovider/LineDataProvider.kt | 2 +- .../dataprovider/ScatterDataProvider.kt | 2 +- .../BarLineScatterCandleBubbleDataProvider.kt | 3 +- .../dataprovider/base/IBaseProvider.kt | 4 +- .../BarLineScatterCandleBubbleRenderer.kt | 2 +- .../renderer/CombinedChartRenderer.kt | 19 ++- .../appdev/charting/renderer/DataRenderer.kt | 4 +- .../renderer/HorizontalBarChartRenderer.kt | 4 +- 21 files changed, 209 insertions(+), 77 deletions(-) diff --git a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt index 14685e888..cf1fc6b4d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt @@ -41,7 +41,7 @@ class ListViewMultiChartActivity : DemoBase() { binding = ActivityListviewChartBinding.inflate(layoutInflater) setContentView(binding.root) - val list = ArrayList() + val list = ArrayList>() // 30 items for (i in 0..29) { @@ -59,7 +59,7 @@ class ListViewMultiChartActivity : DemoBase() { } /** adapter that supports 3 different item types */ - private class ChartDataAdapter(context: Context, objects: MutableList) : ArrayAdapter(context, 0, objects) { + private class ChartDataAdapter(context: Context, objects: MutableList>) : ArrayAdapter>(context, 0, objects) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { return getItem(position)!!.getView(position, convertView, context)!! } diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt index 87c73ef35..42ff28604 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/BarChartItem.kt @@ -8,10 +8,9 @@ import android.view.View import info.appdev.charting.charts.BarChart import info.appdev.charting.components.XAxis.XAxisPosition import info.appdev.charting.data.BarData -import info.appdev.charting.data.ChartData import info.appdev.chartexample.R -class BarChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chartData) { +class BarChartItem(chartData: BarData, context: Context) : ChartItem(chartData) { private val typeface: Typeface? = Typeface.createFromAsset(context.assets, "OpenSans-Regular.ttf") override val itemType: Int diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/ChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/ChartItem.kt index 820c41772..2a3f5b4c7 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/ChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/ChartItem.kt @@ -8,7 +8,7 @@ import info.appdev.charting.data.ChartData * Base class of the Chart ListView items */ @Suppress("unused") -abstract class ChartItem internal constructor(var chartData: ChartData<*>) { +abstract class ChartItem> internal constructor(var chartData: T) { abstract val itemType: Int abstract fun getView(position: Int, convertView: View?, context: Context?): View? diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt index 7dff1fac2..9e420e792 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/LineChartItem.kt @@ -7,11 +7,10 @@ import android.view.LayoutInflater import android.view.View import info.appdev.charting.charts.LineChart import info.appdev.charting.components.XAxis.XAxisPosition -import info.appdev.charting.data.ChartData import info.appdev.charting.data.LineData import info.appdev.chartexample.R -class LineChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chartData) { +class LineChartItem(lineData: LineData, context: Context) : ChartItem(lineData) { private val typeface: Typeface? = Typeface.createFromAsset(context.assets, "OpenSans-Regular.ttf") override val itemType: Int diff --git a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt index e1933b27f..c6fe060b5 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/listviewitems/PieChartItem.kt @@ -12,13 +12,12 @@ import android.view.LayoutInflater import android.view.View import info.appdev.charting.charts.PieChart import info.appdev.charting.components.Legend -import info.appdev.charting.data.ChartData import info.appdev.charting.data.PieData import info.appdev.charting.formatter.PercentFormatter import info.appdev.charting.utils.ColorTemplate import info.appdev.chartexample.R -class PieChartItem(chartData: ChartData<*>, context: Context) : ChartItem(chartData) { +class PieChartItem(pieData: PieData, context: Context) : ChartItem(pieData) { private val typeface: Typeface? = Typeface.createFromAsset(context.assets, "OpenSans-Regular.ttf") private val centerText: SpannableString diff --git a/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt b/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt index aaec869b7..9cdc124a7 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt @@ -47,7 +47,7 @@ import kotlin.math.min @Suppress("unused") @SuppressLint("RtlHardcoded") abstract class BarLineChartBase>> : Chart, - BarLineScatterCandleBubbleDataProvider { + BarLineScatterCandleBubbleDataProvider { /** * the maximum number of entries to which values will be drawn * (entry numbers greater than this value will cause value-labels to disappear) diff --git a/chartLib/src/main/kotlin/info/appdev/charting/charts/Chart.kt b/chartLib/src/main/kotlin/info/appdev/charting/charts/Chart.kt index 214444ff5..a029c2cd5 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/charts/Chart.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/charts/Chart.kt @@ -49,7 +49,7 @@ import kotlin.math.abs import kotlin.math.max @Suppress("unused") -abstract class Chart>> : ViewGroup, IBaseProvider { +abstract class Chart>> : ViewGroup, IBaseProvider { /** * Returns true if log-output is enabled for the chart, fals if not. */ @@ -237,35 +237,6 @@ abstract class Chart>> : ViewGroup, IBaseP this.legendRenderer = LegendRenderer(this.viewPortHandler, this.legend) } - /** - * Sets a new data object for the chart. The data object contains all values - * and information needed for displaying. - */ - open fun setData(data: T?) { - mData = data - mOffsetsCalculated = false - - if (data == null) { - return - } - - // calculate how many digits are needed - setupDefaultFormatter(data.yMin, data.yMax) - - for (set in mData!!.dataSets!!) { - if (set.needsFormatter() || set.valueFormatter === mDefaultValueFormatter) { - set.valueFormatter = mDefaultValueFormatter - } - } - - // let the chart know there is new data - notifyDataSetChanged() - - if (this.isLogEnabled) { - Timber.i("Data is set.") - } - } - /** * Clears the chart from all data (sets it to null) and refreshes it (by * calling invalidate()). @@ -1053,11 +1024,36 @@ abstract class Chart>> : ViewGroup, IBaseP } /** - * Returns the ChartData object that has been set for the chart. + * Data object for the chart. The data object contains all values and information needed for displaying. */ - override fun getData(): T? { - return mData - } + override var data: T? + get() = mData + set(value) { + mData = value + + if (value == null) { + mOffsetsCalculated = false + return + } + + mOffsetsCalculated = false + + // calculate how many digits are needed + setupDefaultFormatter(value.yMin, value.yMax) + + for (set in mData!!.dataSets!!) { + if (set.needsFormatter() || set.valueFormatter === mDefaultValueFormatter) { + set.valueFormatter = mDefaultValueFormatter + } + } + + // let the chart know there is new data + notifyDataSetChanged() + + if (isLogEnabled) { + Timber.i("Data is set.") + } + } var renderer: DataRenderer? /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/charts/CombinedChart.kt b/chartLib/src/main/kotlin/info/appdev/charting/charts/CombinedChart.kt index aa47f5bea..151a83c8a 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/charts/CombinedChart.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/charts/CombinedChart.kt @@ -12,7 +12,9 @@ import info.appdev.charting.data.LineData import info.appdev.charting.data.ScatterData import info.appdev.charting.highlight.CombinedHighlighter import info.appdev.charting.highlight.Highlight +import info.appdev.charting.interfaces.dataprovider.BarDataProvider import info.appdev.charting.interfaces.dataprovider.CombinedDataProvider +import info.appdev.charting.interfaces.dataprovider.LineDataProvider import info.appdev.charting.interfaces.datasets.IDataSet import info.appdev.charting.renderer.CombinedChartRenderer import timber.log.Timber @@ -25,22 +27,25 @@ open class CombinedChart : BarLineChartBase, CombinedDataProvider /** * if set to true, all values are drawn above their bars, instead of below their top */ - override var isDrawValueAboveBarEnabled: Boolean = true + var isDrawValueAboveBarEnabled: Boolean = true /** * Set this to true to make the highlight operation full-bar oriented, * false to make it highlight single values (relevant only for stacked). */ - override var isHighlightFullBarEnabled: Boolean = false + var isHighlightFullBarEnabled: Boolean = false /** * if set to true, a grey area is drawn behind each bar that indicates the maximum value */ - override var isDrawBarShadowEnabled: Boolean = false + var isDrawBarShadowEnabled: Boolean = false protected var mDrawOrder: MutableList? = null + lateinit var barDataProvider : BarDataProvider + lateinit var lineDataProvider : LineDataProvider + /** * enum that allows to specify the order in which the different data objects for the combined-chart are drawn */ @@ -62,7 +67,132 @@ open class CombinedChart : BarLineChartBase, CombinedDataProvider DrawOrder.BAR, DrawOrder.BUBBLE, DrawOrder.LINE, DrawOrder.CANDLE, DrawOrder.SCATTER ) - setHighlighter(CombinedHighlighter(this, this)) + // Create BarDataProvider adapter for CombinedHighlighter + barDataProvider = object : BarDataProvider { + override val barData: BarData? + get() = this@CombinedChart.barData + + override var isDrawBarShadowEnabled: Boolean + get() = this@CombinedChart.isDrawBarShadowEnabled + set(value) { this@CombinedChart.isDrawBarShadowEnabled = value } + + override var isDrawValueAboveBarEnabled: Boolean + get() = this@CombinedChart.isDrawValueAboveBarEnabled + set(value) { this@CombinedChart.isDrawValueAboveBarEnabled = value } + + override var isHighlightFullBarEnabled: Boolean + get() = this@CombinedChart.isHighlightFullBarEnabled + set(value) { this@CombinedChart.isHighlightFullBarEnabled = value } + + override var data: BarData? + get() = this@CombinedChart.barData + set(_) {} + + override fun getTransformer(axis: info.appdev.charting.components.YAxis.AxisDependency?) = + this@CombinedChart.getTransformer(axis) + + override fun isInverted(axis: info.appdev.charting.components.YAxis.AxisDependency?) = + this@CombinedChart.isInverted(axis) + + override val lowestVisibleX: Float + get() = this@CombinedChart.lowestVisibleX + + override val highestVisibleX: Float + get() = this@CombinedChart.highestVisibleX + + override val xChartMin: Float + get() = this@CombinedChart.xChartMin + + override val xChartMax: Float + get() = this@CombinedChart.xChartMax + + override val xRange: Float + get() = this@CombinedChart.xRange + + override val yChartMin: Float + get() = this@CombinedChart.yChartMin + + override val yChartMax: Float + get() = this@CombinedChart.yChartMax + + override var maxHighlightDistance: Float + get() = this@CombinedChart.maxHighlightDistance + set(value) { this@CombinedChart.maxHighlightDistance = value } + + override val centerOfView: info.appdev.charting.utils.PointF + get() = this@CombinedChart.centerOfView + + override val centerOffsets: info.appdev.charting.utils.PointF + get() = this@CombinedChart.centerOffsets + + override val contentRect: android.graphics.RectF + get() = this@CombinedChart.contentRect + + override val defaultValueFormatter: info.appdev.charting.formatter.IValueFormatter + get() = this@CombinedChart.defaultValueFormatter + + override val maxVisibleCount: Int + get() = this@CombinedChart.maxVisibleCount + } + + lineDataProvider = object : LineDataProvider { + + + override fun getTransformer(axis: info.appdev.charting.components.YAxis.AxisDependency?) = + this@CombinedChart.getTransformer(axis) + + override fun isInverted(axis: info.appdev.charting.components.YAxis.AxisDependency?) = + this@CombinedChart.isInverted(axis) + + override val lowestVisibleX: Float + get() = this@CombinedChart.lowestVisibleX + + override val highestVisibleX: Float + get() = this@CombinedChart.highestVisibleX + + override val xChartMin: Float + get() = this@CombinedChart.xChartMin + + override val xChartMax: Float + get() = this@CombinedChart.xChartMax + + override val xRange: Float + get() = this@CombinedChart.xRange + + override val yChartMin: Float + get() = this@CombinedChart.yChartMin + + override val yChartMax: Float + get() = this@CombinedChart.yChartMax + + override var maxHighlightDistance: Float + get() = this@CombinedChart.maxHighlightDistance + set(value) { this@CombinedChart.maxHighlightDistance = value } + + override val centerOfView: info.appdev.charting.utils.PointF + get() = this@CombinedChart.centerOfView + + override val centerOffsets: info.appdev.charting.utils.PointF + get() = this@CombinedChart.centerOffsets + + override val contentRect: android.graphics.RectF + get() = this@CombinedChart.contentRect + + override val defaultValueFormatter: info.appdev.charting.formatter.IValueFormatter + get() = this@CombinedChart.defaultValueFormatter + + override var data: LineData? + get() = this@CombinedChart.lineData + set(value) {} + + override val maxVisibleCount: Int + get() = this@CombinedChart.maxVisibleCount + override val lineData: LineData? + get() = this@CombinedChart.lineData + + } + + setHighlighter(CombinedHighlighter(this, barDataProvider)) // Old default behaviour isHighlightFullBarEnabled = true @@ -73,12 +203,6 @@ open class CombinedChart : BarLineChartBase, CombinedDataProvider override val combinedData: CombinedData? get() = mData - override fun setData(data: CombinedData?) { - super.setData(data) - setHighlighter(CombinedHighlighter(this, this)) - (mRenderer as CombinedChartRenderer).createRenderers() - mRenderer?.initBuffers() - } /** * Returns the Highlight object (contains x-index and DataSet index) of the selected value at the given touch diff --git a/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt b/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt index fa0379446..254d884b7 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt @@ -10,7 +10,7 @@ import info.appdev.charting.utils.PointD import kotlin.math.abs import kotlin.math.hypot -open class ChartHighlighter(protected var provider: T) : IHighlighter { +open class ChartHighlighter>(protected var provider: T) : IHighlighter { /** * buffer for storing previously highlighted values */ diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BarDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BarDataProvider.kt index 503f74af4..d12c70243 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BarDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BarDataProvider.kt @@ -3,7 +3,7 @@ package info.appdev.charting.interfaces.dataprovider import info.appdev.charting.data.BarData import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface BarDataProvider : BarLineScatterCandleBubbleDataProvider { +interface BarDataProvider : BarLineScatterCandleBubbleDataProvider { val barData: BarData? var isDrawBarShadowEnabled: Boolean var isDrawValueAboveBarEnabled: Boolean diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BubbleDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BubbleDataProvider.kt index 41db1fa59..26e66137c 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BubbleDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/BubbleDataProvider.kt @@ -3,6 +3,6 @@ package info.appdev.charting.interfaces.dataprovider import info.appdev.charting.data.BubbleData import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface BubbleDataProvider : BarLineScatterCandleBubbleDataProvider { +interface BubbleDataProvider : BarLineScatterCandleBubbleDataProvider { val bubbleData: BubbleData? } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CandleDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CandleDataProvider.kt index 0a85926ed..afebc09d9 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CandleDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CandleDataProvider.kt @@ -3,6 +3,6 @@ package info.appdev.charting.interfaces.dataprovider import info.appdev.charting.data.CandleData import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface CandleDataProvider : BarLineScatterCandleBubbleDataProvider { +interface CandleDataProvider : BarLineScatterCandleBubbleDataProvider { val candleData: CandleData? } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CombinedDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CombinedDataProvider.kt index bceb69e80..6fd4a27cd 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CombinedDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/CombinedDataProvider.kt @@ -1,7 +1,18 @@ package info.appdev.charting.interfaces.dataprovider +import info.appdev.charting.data.BarData +import info.appdev.charting.data.BubbleData +import info.appdev.charting.data.CandleData import info.appdev.charting.data.CombinedData +import info.appdev.charting.data.LineData +import info.appdev.charting.data.ScatterData +import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface CombinedDataProvider : LineDataProvider, BarDataProvider, BubbleDataProvider, CandleDataProvider, ScatterDataProvider { +interface CombinedDataProvider : BarLineScatterCandleBubbleDataProvider { val combinedData: CombinedData? + val lineData: LineData? + val barData: BarData? + val bubbleData: BubbleData? + val candleData: CandleData? + val scatterData: ScatterData? } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/LineDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/LineDataProvider.kt index 5869a85fb..aed4a98a2 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/LineDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/LineDataProvider.kt @@ -3,6 +3,6 @@ package info.appdev.charting.interfaces.dataprovider import info.appdev.charting.data.LineData import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface LineDataProvider : BarLineScatterCandleBubbleDataProvider { +interface LineDataProvider : BarLineScatterCandleBubbleDataProvider { val lineData: LineData? } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/ScatterDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/ScatterDataProvider.kt index 71653e47f..752bfd97b 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/ScatterDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/ScatterDataProvider.kt @@ -3,6 +3,6 @@ package info.appdev.charting.interfaces.dataprovider import info.appdev.charting.data.ScatterData import info.appdev.charting.interfaces.dataprovider.base.BarLineScatterCandleBubbleDataProvider -interface ScatterDataProvider : BarLineScatterCandleBubbleDataProvider { +interface ScatterDataProvider : BarLineScatterCandleBubbleDataProvider { val scatterData: ScatterData? } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/BarLineScatterCandleBubbleDataProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/BarLineScatterCandleBubbleDataProvider.kt index 99228121f..c07d33977 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/BarLineScatterCandleBubbleDataProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/BarLineScatterCandleBubbleDataProvider.kt @@ -1,9 +1,10 @@ package info.appdev.charting.interfaces.dataprovider.base import info.appdev.charting.components.YAxis +import info.appdev.charting.data.BarLineScatterCandleBubbleData import info.appdev.charting.utils.Transformer -interface BarLineScatterCandleBubbleDataProvider : IBaseProvider { +interface BarLineScatterCandleBubbleDataProvider> : IBaseProvider { fun getTransformer(axis: YAxis.AxisDependency?): Transformer? fun isInverted(axis: YAxis.AxisDependency?): Boolean val lowestVisibleX: Float diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/IBaseProvider.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/IBaseProvider.kt index 09014a7b1..1c1ca0e1b 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/IBaseProvider.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/dataprovider/base/IBaseProvider.kt @@ -9,7 +9,7 @@ import info.appdev.charting.utils.PointF * Interface that provides everything there is to know about the dimensions, * bounds, and range of the chart. */ -interface IBaseProvider { +interface IBaseProvider> { /** * Returns the minimum x value of the chart, regardless of zoom or translation. */ @@ -45,7 +45,7 @@ interface IBaseProvider { val defaultValueFormatter: IValueFormatter? - fun getData(): ChartData<*>? + var data: T? val maxVisibleCount: Int } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/BarLineScatterCandleBubbleRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/BarLineScatterCandleBubbleRenderer.kt index b12939465..d54b178d9 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/BarLineScatterCandleBubbleRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/BarLineScatterCandleBubbleRenderer.kt @@ -61,7 +61,7 @@ abstract class BarLineScatterCandleBubbleRenderer( /** * Calculates the minimum and maximum x values as well as the range between them. */ - fun set(chart: BarLineScatterCandleBubbleDataProvider, dataSet: IBarLineScatterCandleBubbleDataSet) { + fun set(chart: BarLineScatterCandleBubbleDataProvider<*>, dataSet: IBarLineScatterCandleBubbleDataSet) { val phaseX = max(0f, min(1f, animator.phaseX)) val low = chart.lowestVisibleX diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt index bbf551ee1..a0695353c 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/CombinedChartRenderer.kt @@ -8,13 +8,16 @@ import info.appdev.charting.charts.CombinedChart.DrawOrder import info.appdev.charting.data.ChartData import info.appdev.charting.data.CombinedData import info.appdev.charting.highlight.Highlight +import info.appdev.charting.interfaces.dataprovider.BubbleDataProvider +import info.appdev.charting.interfaces.dataprovider.CandleDataProvider +import info.appdev.charting.interfaces.dataprovider.ScatterDataProvider import info.appdev.charting.utils.ViewPortHandler import java.lang.ref.WeakReference /** * Renderer class that is responsible for rendering multiple different data-types. */ -@Suppress("MemberVisibilityCanBePrivate") +@Suppress("MemberVisibilityCanBePrivate", "UNCHECKED_CAST") open class CombinedChartRenderer( chart: CombinedChart, animator: ChartAnimator, @@ -34,18 +37,18 @@ open class CombinedChartRenderer( fun createRenderers() { dataRenderers.clear() - val chart = weakChart.get() as CombinedChart? ?: return + val combinedChart = weakChart.get() as CombinedChart? ?: return - val orders = chart.drawOrder + val orders = combinedChart.drawOrder orders?.let { for (order in it) { when (order) { - DrawOrder.BAR -> dataRenderers.add(BarChartRenderer(chart, animator, viewPortHandler)) - DrawOrder.BUBBLE -> if (chart.bubbleData != null) dataRenderers.add(BubbleChartRenderer(chart, animator, viewPortHandler)) - DrawOrder.LINE -> dataRenderers.add(LineChartRenderer(chart, animator, viewPortHandler)) - DrawOrder.CANDLE -> if (chart.candleData != null) dataRenderers.add(CandleStickChartRenderer(chart, animator, viewPortHandler)) - DrawOrder.SCATTER -> if (chart.scatterData != null) dataRenderers.add(ScatterChartRenderer(chart, animator, viewPortHandler)) + DrawOrder.BAR -> dataRenderers.add(BarChartRenderer(combinedChart.barDataProvider, animator, viewPortHandler)) + DrawOrder.BUBBLE -> if (combinedChart.bubbleData != null) dataRenderers.add(BubbleChartRenderer(combinedChart as BubbleDataProvider, animator, viewPortHandler)) + DrawOrder.LINE -> dataRenderers.add(LineChartRenderer(combinedChart.lineDataProvider, animator, viewPortHandler)) + DrawOrder.CANDLE -> if (combinedChart.candleData != null) dataRenderers.add(CandleStickChartRenderer(combinedChart as CandleDataProvider, animator, viewPortHandler)) + DrawOrder.SCATTER -> if (combinedChart.scatterData != null) dataRenderers.add(ScatterChartRenderer(combinedChart as ScatterDataProvider, animator, viewPortHandler)) } } } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/DataRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/DataRenderer.kt index e86579c94..080d4344d 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/DataRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/DataRenderer.kt @@ -60,8 +60,8 @@ abstract class DataRenderer( paintHighlight.color = Color.rgb(255, 187, 115) } - protected open fun isDrawingValuesAllowed(baseProvider: IBaseProvider): Boolean { - return baseProvider.getData()!!.entryCount < baseProvider.maxVisibleCount * viewPortHandler.scaleX + protected open fun isDrawingValuesAllowed(baseProvider: IBaseProvider<*>): Boolean { + return baseProvider.data!!.entryCount < baseProvider.maxVisibleCount * viewPortHandler.scaleX } /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/HorizontalBarChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/HorizontalBarChartRenderer.kt index bde54e6af..f96c8d26b 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/HorizontalBarChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/HorizontalBarChartRenderer.kt @@ -456,7 +456,7 @@ open class HorizontalBarChartRenderer( high.setDraw(bar.centerY(), bar.right) } - override fun isDrawingValuesAllowed(baseProvider: IBaseProvider): Boolean { - return baseProvider.getData()!!.entryCount < baseProvider.maxVisibleCount * viewPortHandler.scaleY + override fun isDrawingValuesAllowed(baseProvider: IBaseProvider<*>): Boolean { + return baseProvider.data!!.entryCount < baseProvider.maxVisibleCount * viewPortHandler.scaleY } }