aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Cohen Gindi <danielgindi@gmail.com>2020-01-22 13:23:12 +0200
committerDaniel Cohen Gindi <danielgindi@gmail.com>2020-01-22 13:23:12 +0200
commitc97c8d247f0a882ce1a034d2f08700a5550564f4 (patch)
tree275e298528702bd1b256e08733deadba3ae0a9f7
parentae59e7a19e70b53d419eacd3d9520d76ff4553cd (diff)
downloadMPAndroidChart-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.java4
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LegendRenderer.java13
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(),