diff options
author | Daniel Cohen Gindi <danielgindi@gmail.com> | 2020-01-22 13:23:12 +0200 |
---|---|---|
committer | Daniel Cohen Gindi <danielgindi@gmail.com> | 2020-01-22 13:23:12 +0200 |
commit | c97c8d247f0a882ce1a034d2f08700a5550564f4 (patch) | |
tree | 275e298528702bd1b256e08733deadba3ae0a9f7 | |
parent | ae59e7a19e70b53d419eacd3d9520d76ff4553cd (diff) | |
download | MPAndroidChart-c97c8d247f0a882ce1a034d2f08700a5550564f4.tar.gz |
Fixed index out of bounds issue when using stacked bar chart
https://github.com/danielgindi/Charts/commit/b03cf16ec47437c066e17b5b8f77322111695e6a
-rw-r--r-- | MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.java | 4 | ||||
-rw-r--r-- | MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.java b/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.java index 496f4046..ed076dc9 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.java @@ -38,9 +38,7 @@ public class BarDataSet extends BarLineScatterCandleBubbleDataSet<BarEntry> impl /** * array of labels used to describe the different values of the stacked bars */ - private String[] mStackLabels = new String[]{ - "Stack" - }; + private String[] mStackLabels = new String[]{}; public BarDataSet(List<BarEntry> yVals, String label) { super(yVals, label); diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java index 4e7e5d64..5d495805 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java @@ -101,10 +101,19 @@ public class LegendRenderer extends Renderer { IBarDataSet bds = (IBarDataSet) dataSet; String[] sLabels = bds.getStackLabels(); - for (int j = 0; j < clrs.size() && j < bds.getStackSize(); j++) { + int minEntries = Math.min(clrs.size(), bds.getStackSize()); + + for (int j = 0; j < minEntries; j++) { + String label; + if (sLabels.length > 0) { + int labelIndex = j % minEntries; + label = labelIndex < sLabels.length ? sLabels[labelIndex] : null; + } else { + label = null; + } computedEntries.add(new LegendEntry( - sLabels[j % sLabels.length], + label, dataSet.getForm(), dataSet.getFormSize(), dataSet.getFormLineWidth(), |