From 586f652d07a908cad634122ead0fc592e08f6c04 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Tue, 23 Dec 2025 09:10:34 +0100 Subject: [PATCH] Restructure isDrawFilledEnabled --- .../github/mikephil/charting/data/LineRadarDataSet.kt | 4 ---- .../charting/interfaces/datasets/ILineRadarDataSet.kt | 10 +--------- .../info/appdev/chartexample/CubicLineChartActivity.kt | 7 ++----- .../main/kotlin/info/appdev/chartexample/DataTools.kt | 2 +- .../info/appdev/chartexample/FilledLineActivity.kt | 4 ++-- .../appdev/chartexample/InvertedLineChartActivity.kt | 2 +- .../info/appdev/chartexample/LineChartActivity.kt | 2 +- .../appdev/chartexample/LineChartDualAxisActivity.kt | 2 +- .../info/appdev/chartexample/LineChartTimeActivity.kt | 7 +------ .../info/appdev/chartexample/MultiLineChartActivity.kt | 9 ++------- .../info/appdev/chartexample/PerformanceLineChart.kt | 6 +++--- .../info/appdev/chartexample/RadarChartActivity.kt | 6 +++--- .../chartexample/SpecificPositionsLineChartActivity.kt | 7 +++---- 13 files changed, 21 insertions(+), 47 deletions(-) diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineRadarDataSet.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineRadarDataSet.kt index bb5b01acc..5fbe66c76 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineRadarDataSet.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineRadarDataSet.kt @@ -66,10 +66,6 @@ abstract class LineRadarDataSet(yVals: MutableList?, label: String mLineWidth = width.convertDpToPixel() } - override fun setDrawFilled(enabled: Boolean) { - this.isDrawFilledEnabled = enabled - } - protected fun copy(lineRadarDataSet: LineRadarDataSet<*>) { super.copy((lineRadarDataSet as BaseDataSet<*>?)!!) lineRadarDataSet.isDrawFilledEnabled = this.isDrawFilledEnabled diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineRadarDataSet.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineRadarDataSet.kt index 50b153e3f..d2d6a6bae 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineRadarDataSet.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineRadarDataSet.kt @@ -28,14 +28,6 @@ interface ILineRadarDataSet : ILineScatterCandleRadarDataSet { /** * Returns true if filled drawing is enabled, false if not */ - val isDrawFilledEnabled: Boolean + var isDrawFilledEnabled: Boolean - /** - * Set to true if the DataSet should be drawn filled (surface), and not just - * as a line, disabling this will give great performance boost. Please note that this method - * uses the canvas.clipPath(...) method for drawing the filled area. - * For devices with API level < 18 (Android 4.3), hardware acceleration of the chart should - * be turned off. Default: false - */ - fun setDrawFilled(enabled: Boolean) } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt index 5b0b23680..ec2785d56 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt @@ -106,7 +106,7 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { set1.lineMode = LineDataSet.Mode.CUBIC_BEZIER set1.cubicIntensity = 0.2f - set1.setDrawFilled(true) + set1.isDrawFilledEnabled = true set1.isDrawCirclesEnabled = false set1.lineWidth = 1.8f set1.circleRadius = 4f @@ -163,10 +163,7 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> set.let { - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt index 401f1d21a..f2520b4c1 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt @@ -204,7 +204,7 @@ class DataTools { lineDataSet01.enableDashedHighlightLine(10f, 5f, 0f) // set the filled area - lineDataSet01.setDrawFilled(true) + lineDataSet01.isDrawFilledEnabled = true lineDataSet01.fillFormatter = object : IFillFormatter { override fun getFillLinePosition(dataSet: ILineDataSet?, dataProvider: LineDataProvider): Float { return lineChart.axisLeft.axisMinimum diff --git a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt index 3dbc937c0..75f358e5c 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt @@ -105,7 +105,7 @@ class FilledLineActivity : DemoBase() { set1.lineWidth = 2f set1.circleRadius = 3f set1.fillAlpha = 255 - set1.setDrawFilled(true) + set1.isDrawFilledEnabled = true set1.fillColor = Color.WHITE set1.highLightColor = Color.rgb(244, 117, 117) set1.isDrawCircleHoleEnabled = false @@ -125,7 +125,7 @@ class FilledLineActivity : DemoBase() { set2.lineWidth = 2f set2.circleRadius = 3f set2.fillAlpha = 255 - set2.setDrawFilled(true) + set2.isDrawFilledEnabled = true set2.fillColor = Color.WHITE set2.isDrawCircleHoleEnabled = false set2.highLightColor = Color.rgb(244, 117, 117) diff --git a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt index 8cbc5c1f0..12b4f746e 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt @@ -148,7 +148,7 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } 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 31a8471c9..f89290407 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt @@ -177,7 +177,7 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set.isDrawFilledEnabled = !set.isDrawFilledEnabled binding.chart1.invalidate() } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt index cd0c43b64..25746c0c4 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt @@ -232,7 +232,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt index 584843809..4d2742b55 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt @@ -173,12 +173,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.let { - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) - } + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt index 900cc5472..6b333c580 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt @@ -156,13 +156,8 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu } R.id.actionToggleFilled -> { - binding.chart1.data!!.dataSets.forEach { set -> - set?.let { - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) - } + binding.chart1.data?.dataSets?.forEach { set -> + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt index 9b188fb6a..8d9eb490e 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt @@ -7,13 +7,13 @@ import android.view.Menu import android.view.MenuItem import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener +import androidx.core.net.toUri import com.github.mikephil.charting.data.Entry import com.github.mikephil.charting.data.LineData import com.github.mikephil.charting.data.LineDataSet import info.appdev.chartexample.DataTools.Companion.getMuchValues -import info.appdev.chartexample.notimportant.DemoBase -import androidx.core.net.toUri import info.appdev.chartexample.databinding.ActivityPerformanceLinechartBinding +import info.appdev.chartexample.notimportant.DemoBase class PerformanceLineChart : DemoBase(), OnSeekBarChangeListener { @@ -69,7 +69,7 @@ class PerformanceLineChart : DemoBase(), OnSeekBarChangeListener { set1.isDrawValues = false set1.isDrawCirclesEnabled = false set1.lineMode = LineDataSet.Mode.LINEAR - set1.setDrawFilled(false) + set1.isDrawFilledEnabled = false // create a data object with the data sets val data = LineData(set1) diff --git a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt index df1583058..d378fade5 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt @@ -106,7 +106,7 @@ class RadarChartActivity : DemoBase() { val set1 = RadarDataSet(entries1, "Last Week") set1.color = Color.rgb(103, 110, 129) set1.fillColor = Color.rgb(103, 110, 129) - set1.setDrawFilled(true) + set1.isDrawFilledEnabled = true set1.fillAlpha = 180 set1.lineWidth = 2f set1.isDrawHighlightCircleEnabled = true @@ -115,7 +115,7 @@ class RadarChartActivity : DemoBase() { val set2 = RadarDataSet(entries2, "This Week") set2.color = Color.rgb(121, 162, 175) set2.fillColor = Color.rgb(121, 162, 175) - set2.setDrawFilled(true) + set2.isDrawFilledEnabled = true set2.fillAlpha = 180 set2.lineWidth = 2f set2.isDrawHighlightCircleEnabled = true @@ -176,7 +176,7 @@ class RadarChartActivity : DemoBase() { R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt index 441542bd8..c7c13129e 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt @@ -143,9 +143,8 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, } R.id.actionToggleFilled -> { - binding.chart1.data?.dataSets?.forEach { - val set = it as LineDataSet - set.setDrawFilled(!set.isDrawFilledEnabled) + binding.chart1.data?.dataSets?.forEach { set -> + set.isDrawFilledEnabled = !set.isDrawFilledEnabled } binding.chart1.invalidate() } @@ -259,7 +258,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, set11.circleRadius = 3f set11.isDrawCircleHoleEnabled = false set11.valueTextSize = 9f - set11.setDrawFilled(true) + set11.isDrawFilledEnabled = true set11.formLineWidth = 1f set11.formLineDashEffect = DashPathEffect(floatArrayOf(10f, 5f), 0f) set11.formSize = 15f