From be8966be6bd3757d62a398bbcbb479bb40623db5 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Thu, 1 Jan 2026 10:28:13 +0100 Subject: [PATCH 1/2] Rework ValueTextColor The getter with an index is somehow not straight forward --- .../appdev/chartexample/CombinedChartActivity.kt | 8 ++++---- .../appdev/chartexample/DynamicalAddingActivity.kt | 2 +- .../appdev/chartexample/LineChartTimeActivity.kt | 2 +- .../chartexample/RealtimeLineChartActivity.kt | 2 +- .../chartexample/fragments/SimpleFragment.kt | 2 +- .../info/appdev/charting/data/BaseDataSet.kt | 14 +++++++------- .../kotlin/info/appdev/charting/data/ChartData.kt | 2 +- .../charting/interfaces/datasets/IDataSet.kt | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt index 9a337a411..245dea88d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt @@ -112,7 +112,7 @@ class CombinedChartActivity : DemoBase() { set.lineMode = LineDataSet.Mode.CUBIC_BEZIER set.isDrawValues = true set.valueTextSize = 10f - set.setSingleValueTextColor(Color.rgb(240, 238, 70)) + set.setValueTextColor(Color.rgb(240, 238, 70)) set.axisDependency = YAxis.AxisDependency.LEFT d.addDataSet(set) @@ -133,14 +133,14 @@ class CombinedChartActivity : DemoBase() { val set1 = BarDataSet(entries1, "Bar 1") set1.color = Color.rgb(60, 220, 78) - set1.setSingleValueTextColor(Color.rgb(60, 220, 78)) + set1.setValueTextColor(Color.rgb(60, 220, 78)) set1.valueTextSize = 10f set1.axisDependency = YAxis.AxisDependency.LEFT val set2 = BarDataSet(entries2, "") set2.stackLabels = mutableListOf("Stack 1", "Stack 2") set2.setColors(Color.rgb(61, 165, 255), Color.rgb(23, 197, 255)) - set2.setSingleValueTextColor(Color.rgb(61, 165, 255)) + set2.setValueTextColor(Color.rgb(61, 165, 255)) set2.valueTextSize = 10f set2.axisDependency = YAxis.AxisDependency.LEFT @@ -215,7 +215,7 @@ class CombinedChartActivity : DemoBase() { val set = BubbleDataSet(entries, "Bubble DataSet") set.setColors(*ColorTemplate.VORDIPLOM_COLORS) set.valueTextSize = 10f - set.setSingleValueTextColor(Color.WHITE) + set.setValueTextColor(Color.WHITE) set.highlightCircleWidth = 1.5f set.isDrawValues = true bd.addDataSet(set) diff --git a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt index c0cc8c706..3a701d74b 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt @@ -127,7 +127,7 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { set.setCircleColor(color) set.highLightColor = color set.valueTextSize = 10f - set.setSingleValueTextColor(color) + set.setValueTextColor(color) data.addDataSet(set) data.notifyDataChanged() diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt index 0e97c86b1..a7c2a2695 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt @@ -126,7 +126,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { val set1 = LineDataSet(values, "DataSet 1") set1.axisDependency = AxisDependency.LEFT set1.color = holoBlue - set1.setSingleValueTextColor(holoBlue) + set1.setValueTextColor(holoBlue) set1.lineWidth = 1.5f set1.isDrawCirclesEnabled = false set1.isDrawValues = false diff --git a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt index 024ed2a44..5ee1bb87b 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt @@ -122,7 +122,7 @@ class RealtimeLineChartActivity : DemoBase(), OnChartValueSelectedListener { set.fillAlpha = 65 set.fillColor = ColorTemplate.holoBlue set.highLightColor = Color.rgb(244, 117, 117) - set.setSingleValueTextColor(Color.WHITE) + set.setValueTextColor(Color.WHITE) set.valueTextSize = 9f set.isDrawValues = false return set diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt index d2b05bd3b..f1f7e9294 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt @@ -101,7 +101,7 @@ abstract class SimpleFragment : Fragment() { val ds1 = PieDataSet(entries1, "Quarterly Revenues 2015") ds1.setColors(*ColorTemplate.VORDIPLOM_COLORS) ds1.sliceSpace = 2f - ds1.setSingleValueTextColor(Color.WHITE) + ds1.setValueTextColor(Color.WHITE) ds1.valueTextSize = 12f val d = PieData(ds1) diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt index 49f016c13..ced029d8c 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt @@ -266,19 +266,19 @@ abstract class BaseDataSet() : IDataSet { return mValueFormatter == null } - override fun setSingleValueTextColor(value: Int) { - mValueColors.clear() - mValueColors.add(value) - } - override var valueTextColors: MutableList get() = mValueColors set(value) { mValueColors = value } - override fun getValueTextColor(index: Int): Int { - return mValueColors[index % mValueColors.size] + override fun getValueTextColor(value: Int): Int { + return mValueColors[value % mValueColors.size] + } + + override fun setValueTextColor(value: Int) { + mValueColors.clear() + mValueColors.add(value) } override var valueTypeface: Typeface? diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt index 2f8641a49..5be059ebe 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt @@ -551,7 +551,7 @@ abstract class ChartData> : Serializable { */ fun setValueTextColor(color: Int) { for (set in this.dataSets!!) { - set.setSingleValueTextColor(color) + set.setValueTextColor(color) } } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt index 1586e8c32..f91cd5dd6 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt @@ -225,11 +225,11 @@ interface IDataSet { */ fun needsFormatter(): Boolean - fun setSingleValueTextColor(value: Int) /** * Sets the color the value-labels of this DataSet should have. */ - fun getValueTextColor(index: Int): Int + fun getValueTextColor(value: Int): Int + fun setValueTextColor(value: Int) var valueTextColors: MutableList From 2483f4d3381792706e4bd4358b7444620002d4a2 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Thu, 1 Jan 2026 10:50:45 +0100 Subject: [PATCH 2/2] Now as var with additional setter --- .../appdev/chartexample/CombinedChartActivity.kt | 8 ++++---- .../chartexample/DynamicalAddingActivity.kt | 2 +- .../appdev/chartexample/LineChartTimeActivity.kt | 2 +- .../chartexample/RealtimeLineChartActivity.kt | 2 +- .../chartexample/fragments/SimpleFragment.kt | 2 +- .../info/appdev/charting/data/BaseDataSet.kt | 15 ++++++++++----- .../kotlin/info/appdev/charting/data/ChartData.kt | 2 +- .../charting/interfaces/datasets/IDataSet.kt | 3 ++- 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt index 245dea88d..0775b72c7 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt @@ -112,7 +112,7 @@ class CombinedChartActivity : DemoBase() { set.lineMode = LineDataSet.Mode.CUBIC_BEZIER set.isDrawValues = true set.valueTextSize = 10f - set.setValueTextColor(Color.rgb(240, 238, 70)) + set.valueTextColor = Color.rgb(240, 238, 70) set.axisDependency = YAxis.AxisDependency.LEFT d.addDataSet(set) @@ -133,14 +133,14 @@ class CombinedChartActivity : DemoBase() { val set1 = BarDataSet(entries1, "Bar 1") set1.color = Color.rgb(60, 220, 78) - set1.setValueTextColor(Color.rgb(60, 220, 78)) + set1.valueTextColor = Color.rgb(60, 220, 78) set1.valueTextSize = 10f set1.axisDependency = YAxis.AxisDependency.LEFT val set2 = BarDataSet(entries2, "") set2.stackLabels = mutableListOf("Stack 1", "Stack 2") set2.setColors(Color.rgb(61, 165, 255), Color.rgb(23, 197, 255)) - set2.setValueTextColor(Color.rgb(61, 165, 255)) + set2.valueTextColor = Color.rgb(61, 165, 255) set2.valueTextSize = 10f set2.axisDependency = YAxis.AxisDependency.LEFT @@ -215,7 +215,7 @@ class CombinedChartActivity : DemoBase() { val set = BubbleDataSet(entries, "Bubble DataSet") set.setColors(*ColorTemplate.VORDIPLOM_COLORS) set.valueTextSize = 10f - set.setValueTextColor(Color.WHITE) + set.valueTextColor = Color.WHITE set.highlightCircleWidth = 1.5f set.isDrawValues = true bd.addDataSet(set) diff --git a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt index 3a701d74b..e19d46ab9 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt @@ -127,7 +127,7 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { set.setCircleColor(color) set.highLightColor = color set.valueTextSize = 10f - set.setValueTextColor(color) + set.valueTextColor = color data.addDataSet(set) data.notifyDataChanged() diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt index a7c2a2695..8fda9d060 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt @@ -126,7 +126,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { val set1 = LineDataSet(values, "DataSet 1") set1.axisDependency = AxisDependency.LEFT set1.color = holoBlue - set1.setValueTextColor(holoBlue) + set1.valueTextColor = holoBlue set1.lineWidth = 1.5f set1.isDrawCirclesEnabled = false set1.isDrawValues = false diff --git a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt index 5ee1bb87b..84b9511a9 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt @@ -122,7 +122,7 @@ class RealtimeLineChartActivity : DemoBase(), OnChartValueSelectedListener { set.fillAlpha = 65 set.fillColor = ColorTemplate.holoBlue set.highLightColor = Color.rgb(244, 117, 117) - set.setValueTextColor(Color.WHITE) + set.valueTextColor = Color.WHITE set.valueTextSize = 9f set.isDrawValues = false return set diff --git a/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt b/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt index f1f7e9294..7016f7328 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt @@ -101,7 +101,7 @@ abstract class SimpleFragment : Fragment() { val ds1 = PieDataSet(entries1, "Quarterly Revenues 2015") ds1.setColors(*ColorTemplate.VORDIPLOM_COLORS) ds1.sliceSpace = 2f - ds1.setValueTextColor(Color.WHITE) + ds1.valueTextColor = Color.WHITE ds1.valueTextSize = 12f val d = PieData(ds1) diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt index ced029d8c..aaa9e934b 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt @@ -272,15 +272,20 @@ abstract class BaseDataSet() : IDataSet { mValueColors = value } + override var valueTextColor: Int + get() = if (mValueColors.isEmpty()) + 0 + else + mValueColors[0] + set(value) { + mValueColors.clear() + mValueColors.add(value) + } + override fun getValueTextColor(value: Int): Int { return mValueColors[value % mValueColors.size] } - override fun setValueTextColor(value: Int) { - mValueColors.clear() - mValueColors.add(value) - } - override var valueTypeface: Typeface? get() = mValueTypeface set(value) { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt index 5be059ebe..9cb88c0b1 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/ChartData.kt @@ -551,7 +551,7 @@ abstract class ChartData> : Serializable { */ fun setValueTextColor(color: Int) { for (set in this.dataSets!!) { - set.setValueTextColor(color) + set.valueTextColor = color } } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt index f91cd5dd6..551b94013 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IDataSet.kt @@ -228,8 +228,9 @@ interface IDataSet { /** * Sets the color the value-labels of this DataSet should have. */ + var valueTextColor: Int + // This getter is necessary because of the parameter value fun getValueTextColor(value: Int): Int - fun setValueTextColor(value: Int) var valueTextColors: MutableList