AChartEngine is a charting library for Android applications. It currently supports the following chart types: line chart area chart scatter chart time chart bar chart pie chart bubble chart doughnut chart range (high-low) bar chart dial chart / gauge combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart cubic line chart All the above supported chart types can contain multiple series, can be displayed with the X axis horizontally (default) or vertically and support many other custom features. The charts can be built as a view that can be added to a view group or as an intent, such as it can be used to start an activity. The model and the graphing code is well optimized such as it can handle and display huge number of values. AChartEngine is currently at the 1.0.0 release. New chart types will be added in the following releases. Please keep sending your feedback such as we can continually improve this library. Find us on Facebook, too: http://www.facebook.com/achartengine Read a short introduction to AChartEngine here: http://www.javaadvent.com/2012/12/achartengine-charting-library-for.html Another good tutorial can be read here: http://jaxenter.com/effort-free-graphs-on-android-with-achartengine-46199.html
0
stars
1
forks
source link
ANR when calling XYSeries.add(double, double) #382
What steps will reproduce the problem?
XYSeries series = new XYSeries("test");
series.add(2814214d, 230d);
series.add(2814214d, 230d);
What is the expected output? What do you see instead?
Expected quick response and both points added to series.
Instead an infinite (at least until ANR problem occurs) call.
Please provide a source code snippet that we can use to replicate the
issue.
See above.
What version of the product binary library are you using?
1.1.0
Please provide any additional information below.
The problem is caused by version 1.1.0 using Math.ulp(x) instead of previously
using PADDING = 0.000000000001.
See XYSeries.java where this:
private static final double PADDING = 0.000000000001;
public synchronized void add(double x, double y) {
while (mXY.get(x) != null) {
// add a very small value to x such as data points sharing the same x will
// still be added
x += PADDING;
}
...
has been changed to this:
public synchronized void add(double x, double y) {
while (mXY.get(x) != null) {
// add a very small value to x such as data points sharing the same x will
// still be added
x += getPadding(x);
}
...
protected double getPadding(double x) {
return Math.ulp(x);
}
Original issue reported on code.google.com by gos...@gmail.com on 1 Jan 2014 at 1:43
Have you tried this on Android 4.x?
Using Android target version 19 and minimum version 7?
I'm not making this issue up, I got about 20 crashes through the Play store for
various Android 4 devices and I could easily reproduce it.
Please investigate further. Thanks!
Original comment by gos...@gmail.com on 7 Jan 2014 at 10:41
Original issue reported on code.google.com by
gos...@gmail.com
on 1 Jan 2014 at 1:43