Change Log


1.9.4 - 2017-09-27

Fixed

  • Resolves a crash that can occur when the chart is re-drawn and hasn’t been notified of data points removed by the DataAdapter.

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple PieSeries/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked BarSeries/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.9.3 - 2017-07-28

This release introduces control over individual bar & column spacing to BarSeries, ColumnSeries, CandlestickSeries and OHLCSeries. It allows these Series types to only consider themselves and ignore other associated Series when calculating their width and spacing. Additional hooks have also been added to the Animation.Listener to allow notification of additional steps during the progress of an Animation.

Added

  • Animation.notifyInitiated when called will notify any associated Animation.Listeners that the Animation has been initiated
  • Animation.notifyTerminatedWithProgressZero when called will notify any associated Animation.Listeners that the Animation has been terminated with a progress value of zero
  • Animation.notifyTerminatedWithProgressOne when called will notify any associated Animation.Listeners that the Animation has been terminated with a progress value of one
  • Animation.Listener.onInitiated notifies when the Animation has been initiated.

  • Animation.Listener.onTerminatedWithProgressZero notifies when the Animation has been terminated with a progress value of zero
  • Animation.Listener.onTerminatedWithProgressOne notifies when the Animation has been terminated with a progress value of one

-BarSeries.setCalculateBarColumnSpacingIndividually if set to true will cause the ‘BarSeries’ to not consider other associated BarSeries when calculating its width and position -ColumnSeries.setCalculateBarColumnSpacingIndividually if set to true will cause the ‘ColumnSeries’ to not consider other associated ColumnSeries when calculating its width and position -CandlestickSeries.setCalculateBarColumnSpacingIndividually if set to true will cause the ‘CandlestickSeries’ to not consider other associated CandlestickSeries when calculating its width and position -OHLCSeries.setCalculateBarColumnSpacingIndividually if set to true will cause the ‘OHLCSeries’ to not consider other associated OHLCSeries when calculating its width and position

-BarSeriesStyle.setInterSeriesSetPadding sets the proportion of padding to use between each set of series, when BarSeries.setCalculateBarColumnSpacingIndividually has been set to true -ColumnSeriesStyle.setInterSeriesSetPadding sets the proportion of padding to use between each set of series, when ColumnSeries.setCalculateBarColumnSpacingIndividually has been set to true -CandlestickSeriesStyle.setInterSeriesSetPadding sets the proportion of padding to use between each set of series, when CandlestickSeries.setCalculateBarColumnSpacingIndividually has been set to true -OHLCSeriesStyle.setInterSeriesSetPadding sets the proportion of padding to use between each set of series, when OHLCSeries.setCalculateBarColumnSpacingIndividually has been set to true

-BarSeriesStyle.getInterSeriesSetPadding gets the proportion of padding to use between each set of series, when BarSeries.setCalculateBarColumnSpacingIndividually has been set to true -ColumnSeriesStyle.getInterSeriesSetPadding gets the proportion of padding to use between each set of series, when ColumnSeries.setCalculateBarColumnSpacingIndividually has been set to true -CandlestickSeriesStyle.getInterSeriesSetPadding gets the proportion of padding to use between each set of series, when CandlestickSeries.setCalculateBarColumnSpacingIndividually has been set to true -OHLCSeriesStyle.getInterSeriesSetPadding gets the proportion of padding to use between each set of series, when OHLCSeries.setCalculateBarColumnSpacingIndividually has been set to true

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple PieSeries/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked BarSeries/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.9.2 - 2017-06-02

This release introduces a new and improved Animation API. No longer tied directly to time, animations work in terms of a general concept of progress and can be driven by any means. The new API focuses on animating arbitrary values, allowing any property of any object to effectively be animated. This is in contrast to the previous API where animations were restricted to specific properties of Series. For an overview of the new Animation API please see the Control Overview section in the User Guide.

Consequently, a number of existing classes and methods have been deprecated, and these are all detailed below. For backwards compatibility the deprecated classes and methods will remain in the library until the next non-patch version.

It is highly recommended that you do not mix the old and new apis.

To use the old API, animations needed to be enabled on a Series. For the new API this is not necessary. Enabling animation on a Series and using the new API will produce undesirable visual effects.

Similarly, mixing the old stackId API with the new StackingToken API may produce undesirable results. Combining the use of the ShinobiChart‘s OnAxisRangeChangeListener and the AxisOnRangeChangeListener should also be avoided.

Added

  • Animation coordinates the animating of a value. Note, remnants of the previous API are present in this class, for example get/setDuration, but are deprecated and should not be used.
  • Animation.Listener notifies of changes to the Animation progress value.
  • AnimationCurve describes how the proportion of the animated value changes with progress through the animation.
  • Evaluator maps a proportion of the animated value to an actual value in the correct domain. Included implementations:
    • FloatEvaluator uses linear interpolation to map a proportion of the animated value to a Float between a given start and end value.
    • DoubleEvaluator uses linear interpolation to map a proportion of the animated value to a Double between a given start and end value.
    • IntEvaluator uses linear interpolation to map a proportion of the animated value to a Integer between a given start and end value.
  • AnimationSet allows multiple Animation objects to be treated as one and run in parallel.
  • AnimationRunner drives animations based on time.
  • AnimationRunner.Listener notifies of the start, end and cancellation of animations run by the AnimationRunner.
  • SeriesAnimationCreator defines how to animate a series in and out of view. Included implementations:
    • FadeAnimationCreator fades a series in and out of view, setting up appropriate Animation.Listeners to achieve this.
    • GrowAnimationCreator grows and shrinks a series horizontally and vertically in and out of view, setting up appropriate Animation.Listeners to achieve this.
    • GrowHorizontalAnimationCreator grows and shrinks a series horizontally in and out of view, setting up appropriate Animation.Listeners to achieve this.
    • GrowVerticalAnimationCreator grows and shrinks a series vertically in and out of view, setting up appropriate Animation.Listeners to achieve this.
    • HorizontalTelevisionAnimationCreator grows and shrinks a series horizontally and vertically with a delay in between in and out of view, setting up appropriate Animation.Listeners to achieve this.
    • VerticalTelevisionAnimationCreator grows and shrinks a series horizontally and vertically with a delay in between in and out of view, setting up appropriate Animation.Listeners to achieve this.
  • DefaultSeriesAnimationCreationFactory returns the default SeriesAnimationCreator implementation for a given Series type.
  • Series.createDefaultEntryAnimation returns the default animation to bring the series into view based on the type of Series it is.
  • Series.createDefaultExitAnimation returns the default animation to take the series out of view based on the type of Series it is.
  • Series.get/setAlpha affects the transparency of the series as a whole, optimized for use with our OpenGL rendering engine.
  • Series.get/setScaleX affects the horizontal scale of the series without impacting on the axis range, optimized for use with our OpenGL rendering engine.
  • Series.get/setScaleY affects the vertical scale of the series without impacting on the axis range, optimized for use with our OpenGL rendering engine.
  • Series.get/setPivotX defines the point around which the series is scaled horizontally, optimized for use with our OpenGL rendering engine.
  • Series.get/setPivotY defines the point around which the series is scaled vertically, optimized for use with our OpenGL rendering engine.
  • Series.get/setVisibility is used to control the visibility state of the series.
  • Series.VISIBLE denotes the series is displayed.
  • Series.INVISIBLE denotes the series is not displayed but space is left for it in the layout of the plot area.
  • Series.GONE denotes the series is not displayed and space is not left for it in the layout of the plot area.
  • SeriesAlphaAnimationListener updates a given series’ alpha when the progress of an Animation changes.
  • SeriesScaleXAnimationListener updates a given series’ scaleX when the progress of an Animation changes.
  • SeriesScaleYAnimationListener updates a given series’ scaleY when the progress of an Animation changes.
  • SeriesAnimator simplifies adding, removing and changing of visibility of series with animation.
  • SeriesAnimator.Listener notifies of the start and end of animations run by the SeriesAnimator.
  • StackingToken is used to group series into stacks; give the series to stack together the same stacking token instance.
  • StackingToken.newOverlappingStackingToken stacks series such that they are overlaid on each other.
  • StackingToken.newCumulativeStackingToken stacks series such that their values include values from previous series with the same stacking token.
  • Axis.OnRangeChangeListener notifies of changes to an Axis’ range.
  • DateFrequency.toMilliseconds returns an approximate number of milliseconds for the DateFrequency based on its quantity and denomination.
  • BarSeriesStyle/ColumnSeriesStyle.get/setCornerRatio enables the rounding of bar and column corners.
  • BarSeries/ColumnSeries.get/setNumberOfCornerEdges changes the smoothness, or resolution, of rounded bar and column corners.
  • ShinobiChart.setTrialKey is used to set the trial key, for trial versions of shinobicharts.

Changed

  • AnimationCurve now works in terms of a general concept of progress rather than normalized time. Affected implementations:
    • BounceAnimationCurve
    • BounceDelayAnimationCurve
    • DelayBounceAnimationCurve
    • DelayBounceWithMinimumAnimationCurve
    • EaseInAnimationCurve
    • EaseInOutAnimationCurve
    • EaseOutAnimationCurve
    • FlatAnimationCurve
    • LinearAnimationCurve.
  • Series.setHidden now equates hidden with INVISIBLE meaning space is left in the layout of the plot area for the series even though it is not displayed. Previously, for hidden unstacked series, space would be left in the plot area layout whereas, for hidden stacked series, space would not be left in the plot area layout. This inconsistency was part of the motivation for introducing the concept of visibility (VISIBLE, INVISIBLE and GONE). Unfortunately backwards compatibility was not able to be fully maintained and so now hidden stacked series will leave space in the plot area layout. As this method is now deprecated it is recommended Series.setVisibility is used instead with an appropriate visibility value.

Deprecated

Note: all deprecated functionality will be removed in the next non-patch release.

  • AnimationCurve.valueAtTime, use AnimationCurve.proportionAtProgress instead. For backwards compatibility, normalized time is equivalent to progress.
  • CartesianSeries.get/setStackId, use CartesianSeries.get/setStackingToken instead. The previous stacking behavior can be recreated by giving all series a cumulative stacking token, created using the StackingToken.newCumulativeStackingToken method.
  • Series.isAnimationEnabled and Series.enableAnimation, use SeriesAnimator or create Animations manually with suitable Animation.Listeners instead. When using the new Animation API do not enable animations on a Series. It is not required and doing so will cause undesirable visual effects.
  • Series.get/setEntryAnimation and Series.get/setExitAnimation. Series no longer hold and run entry and exit animations themselves, use SeriesAnimator or create Animations manually with suitable Animation.Listeners instead.
  • Series.isAnimating, Series no longer have any concept of whether they are animating or not. When using the SeriesAnimator to animate series, use SeriesAnimator.isAnimating instead.
  • Series.is/setHidden, use Series.get/setVisibility instead. To set the visibility with animation use SeriesAnimator or create Animations manually and run with the AnimationRunner. Setting a series as hidden equates to setting it to INVISIBLE (see CHANGE notice above).
  • SeriesAnimation, use SeriesAnimator or create Animations manually with suitable Animation.Listeners to modify the Series properties instead. Helper classes such as the SeriesAnimationCreator implementations and DefaultSeriesAnimationCreatorFactory can reduce the amount of work required.
  • SeriesAnimation.get/setXOrigin, SeriesAnimation.get/setYOrigin, use Series.get/setPivotX and Series.get/setPivotY to set the point around which the series is scaled directly on itself instead.
  • SeriesAnimation.get/setXScaleCurve, create animations with the desired AnimationCurve and a suitable Animation.Listener instead. SeriesScaleXAnimationListener can be used to update the scaleX of a series.
  • SeriesAnimation.get/setYScaleCurve, create animations with the desired AnimationCurve and a suitable Animation.Listener instead. SeriesScaleYAnimationListener can be used to update the scaleY of a series.
  • SeriesAnimation.get/setAlphaCurve, create animations with the desired AnimationCurve and a suitable Animation.Listener instead. SeriesAlphaAnimationListener can be used to update the alpha of a series.
  • SeriesAnimation.createGrowAnimation, use GrowAnimationCreator instead.
  • SeriesAnimation.createGrowHorizontalAnimation, use GrowHorizontalAnimationCreator instead.
  • SeriesAnimation.createGrowVerticalAnimation, use GrowVerticalAnimationCreator instead.
  • SeriesAnimation.createFadeAnimation, use FadeAnimationCreator instead.
  • SeriesAnimation.createTelevisionAnimation, use HorizontalTelevisionAnimationCreator or VerticalTelevisionAnimationCreator instead.
  • ShinobiChart.setHidden, use Series.setVisibility on each individual series for changing the visibility of multiple series without animation. For changing the visibility of multiple series with animation, use SeriesAnimator.setVisibility instead. Alternatively, manually create suitable Animations to animate the series and run with the AnimationRunner; add an AnimationRunner.Listener to set the visibility status of each series at the end of the animation.
  • ShinobiChart.OnSeriesAnimationListener, use SeriesAnimator.Listener when animating with SeriesAnimator or AnimationRunner.Listener when animating with AnimationRunner.
  • ShinobiChart.setOnSeriesAnimationListener, use SeriesAnimator.addListener when animating with SeriesAnimator or AnimationRunner.addListener when animating with AnimationRunner.
  • ShinobiChart.OnAxisRangeChangeListener, use Axis.OnRangeChangeListener instead.
  • ShinobiChart.setLicenseKey has been deprecated. Use ShinobiChart.setTrialKey instead.

Fixed

  • Value axis of CandlestickSeries, OHLCSeries, ColumnSeries and BarSeries in some situations displayed an incorrect visible range.

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple PieSeries/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked BarSeries/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.9.1 - 2017-03-01

Fixed

  • Crash upon rendering a chart on some Samsung tablet devices running Android 4.

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.9.0 - 2016-07-27

Added

  • Individual point styling can be achieved through the SeriesStyleProvider for LineSeries, BarSeries, ColumnSeries, OHLCSeries and CandlestickSeries.
  • Point-based selection can be performed on BarSeries, ColumnSeries, OHLCSeries and CandlestickSeries by using the POINT_SERIES and POINT_MULTIPLE GestureSelectionModes.
  • Individual point styling and selection functionality is available in our Xamarin.Android library, as well as in the native Android library.

Changed

  • Due to a change in the way Xamarin tools auto-generate API docs from a set of Javadocs, the Xamarin docs now only provide a listing of all classes, enums and interfaces, and their methods and properties. Therefore we recommend cross-referencing with the Javadocs, also provided in the download bundle, to gain a better understanding of the features within the library. We will continue to monitor the situation with these tools and hopefully will be able to provide a fuller documentation set to our Xamarin.Android users in the future.

Deprecated

  • Series.SelectionMode has been deprecated in favor of Series.GestureSelectionMode (and will be removed in v1.10). This rename makes it clearer that the selection mode applies only to selection via tap gesture, not programmatic selection.

Fixed

  • Gradient fill above the baseline of a LineSeries can in some situations bleed into the gradient fill below the baseline.
  • Crash upon rendering a chart on devices with the PowerVR SGX540 GPU.

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.8.3-alpha.1 - 2016-06-30

IMPORTANT

This release is primarily intended for investigation into a GPU specific bug affecting PowerVR SGX540 hardware. Being an alpha release it has not gone through the usual QA process our standard releases go through and therefore we do not recommend it be used in production. Please also note that the Xamarin.Android bindings have not been updated from the previous release (1.8.2) and so do not contain any new functionality.

Added

  • Individual point styling can be achieved through the SeriesStyleProvider for LineSeries, BarSeries, ColumnSeries, OHLCSeries and CandlestickSeries.
  • Point-based selection can be performed on BarSeries, ColumnSeries, OHLCSeries and CandlestickSeries by using the POINT_SERIES and POINT_MULTIPLE SelectionModes.

Fixed

  • Gradient fill above the baseline of a LineSeries can in some situations bleed into the gradient fill below the baseline.

Known Issues

  • For adjacent ColumnSeries/BarSeries where one has thicker lines than the other, in some cases the line can overlap with the adjacent column/bar.
  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.8.2 - 2016-04-08

Added

  • LineSeries can accept a DataValueInterpolator which can be used to control the shape of the drawn line independent of the actual data points.

Changed

  • CategoryAxis now accepts multiple data points with the same category value instead of throwing an exception. This change forms part of wider improvements to increase the flexibility of how data is handled by the chart.

Fixed

  • mips64 architecture is now supported.

Known Issues

  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Gradient fill above the baseline of a LineSeries can in some situations bleed into the gradient fill below the baseline.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.8.1 - 2016-02-05

Added

  • Axis.getZoomLevel() returns the current zoom level of the axis relative to its default range.

Changed

  • DataAdapter.notifyDataChanged() is now public and non-final. This allows the DataAdapter class to fully take part in Decorator Pattern type scenarios.

Fixed

  • OpenGL crashes occurring when ChartViews/ChartFragments were destroyed for certain devices running KitKat or below. Most frequently this was seen on device rotation.
  • Crash for CandlestickSeries when styled with a transparent outline color and an outline width greater than 0.

Known Issues

  • mips64 architecture is currently not supported.
  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Gradient fill above the baseline of a LineSeries can in some situations bleed into the gradient fill below the baseline.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.8.0 - 2016-01-13

Added

  • DataAdapter.OnDataChangedListener callback interface. This allows clients to be notified about changes to a DataAdapter’s data. This is also used internally by the framework to update the rendered series on the chart.

Changed

  • DataAdapter.getDataPointsForDisplay() now returns a copy of the list of data points held by the DataAdapter. This allows subclasses to modify the list to change what points are displayed without impacting on the original data set. This is useful for functionality such as sampling.
  • Tidy up of sample apps including changing application IDs. The Xamarin.Android sample apps can now be installed alongside the Java samples apps on the same device.

Deprecated

  • DataAdapter.fireUpdateHandler() has been deprecated (and will be removed in the next version), use notifyDataChanged() instead. This is a rename to make the method more descriptive.

Known Issues

  • mips64 architecture is currently not supported.
  • Where a chart has multiple Pie/DonutSeries displayed inside each other, only the innermost series displays its crust if a radial effect other than FLAT has been applied.
  • Stacked Bar/ColumnSeries animate in and out from their stacked position rather than from the bottom Series’ baseline.
  • Flat data points in a CandlestickSeries (where the open value is equal to the close value) appear thicker than data points with a small difference in open and close values.
  • Incorrect Z-ordering and rendering artifact for BandSeries where high line crosses low line.
  • Gradient fill above the baseline of a LineSeries can in some situations bleed into the gradient fill below the baseline.
  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.7.4 - 2015-11-20

Changed

  • The shinobicharts library is now distributed as an .aar file.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.7.3 - 2015-09-04

Added

  • Trial license key compatibility

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.7.2 - 2015-05-08

Changed

  • Improved gesture processing: the Chart no longer greedily swallows gesture events if only one axis has panning or zooming enabled. This is useful for placing a number of charts in a ListView, for example, where you want to enable panning on the X axis but still allowing scrolling up and down the ListView. Where panning or zooming is enabled on both axes, or when the Crosshair is actively displayed, the gesture events are swallowed by the Chart as before and not passed up to the parent Views.

Added

  • New methods to add and remove a list of skip ranges to and from an axis. This is more efficient than adding/removing them one at a time and significantly speeds up data load time.
  • The timeout for long touch gestures can be customized. This means the time it takes for the Crosshair to be displayed can be configured, allowing you to simulate activating the Crosshair on a single tap.

Fixed

  • Double tap zooming on discontinuous axes correctly expands the visible range, taking in account skipped ranges.
  • Removing a PieSeries/DonutSeries while a slice is animating in or out no longer causes a NullPointerException.
  • PieSeries/DonutSeries now properly takes into account the protrusion value from the default theme.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.7.1 - 2014-12-03

Added

  • Android 5.0 (Lollipop) compatibility.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.7.0 - 2014-11-10

Added

  • NumberAxis and DateTimeAxis can be made discontinuous by applying skip ranges.
  • DateTimeAxis can also have repeated skip ranges applied.
  • Caching during the tick mark generation for a DateTimeAxis can be disabled to balance performance and tick mark regularity.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.6.0 - 2014-09-22

Added

  • Series can be given entry and exit animations which are run when adding, removing, showing and hiding a Series
  • Axes can be given an explicit width
  • Xamarin.Android.Support.v13 compatible DLL provided

Removed

  • The previously deprecated Crosshair.getTrackingSeries has now been removed. Use Crosshair.getTrackedSeries instead. This is a rename to make the method more descriptive.
  • The previously deprecated Crosshair.getUserXValue has now been removed. Use the appropriate getter method from the Data which is provided by the getFocus method.
  • The previously deprecated Crosshair.getUserYValue has now been removed. Use the appropriate getter method from the Data which is provided by the getFocus method.
  • The previously deprecated ShinobiChart.OnCrosshairListener has now been removed. Use ShinobiChart.OnCrosshairActivationStateChangedListener and ShinobiChart.OnTrackingInfoChangedForCrosshairListener instead. This is because the functionality of the original listener has been split out into, and extended by, these new listeners.
  • The previously deprecated ShinobiChart.setOnCrosshairListener has now been removed. Use ShinobiChart.setOnCrosshairActivationStateChangedListener and ShinobiChart.setOnTrackingInfoChangedForCrosshairListener instead. This is because the functionality of the original listener has been split out into, and extended by, these new listeners.

Fixed

  • Annotations whose View is a ViewGroup with child Views are measured and laid out correctly
  • CandlestickSeries’ sticks are coloured correctly when the outline is not shown
  • Removed obfuscated class called ‘r’ as this can lead to clashes with the ‘R’ class when developing on Macs
  • Correct PieSeries/DonutSeries slice is selected and animated when the draw direction is set to CLOCKWISE

Known issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.5.1 - 2014-07-16

Added

  • Custom crosshair drawing
  • Custom crosshair positioning
  • Custom tooltip text
  • Custom tooltip positioning
  • Multi value tooltips
  • Custom tooltip Views

Deprecated

  • Crosshair.getTrackingSeries has been deprecated (and will be removed in v1.6). Use Crosshair.getTrackedSeries instead. This is a rename to make the method more descriptive.
  • Crosshair.getUserXValue has been deprecated (and will be removed in v1.6). Use the appropriate getter method from the Data which is provided by the getFocus method.
  • Crosshair.getUserYValue has been deprecated (and will be removed in v1.6). Use the appropriate getter method from the Data which is provided by the getFocus method.
  • ShinobiChart.OnCrosshairListener has been deprecated (and will be removed in v1.6). Use ShinobiChart.OnCrosshairActivationStateChangedListener and ShinobiChart.OnTrackingInfoChangedForCrosshairListener instead. This is because the functionality of the original listener has been split out into, and extended by, these new listeners.
  • ShinobiChart.setOnCrosshairListener has been deprecated (and will be removed in v1.6). Use ShinobiChart.setOnCrosshairActivationStateChangedListener and ShinobiChart.setOnTrackingInfoChangedForCrosshairListener instead. This is because the functionality of the original listener has been split out into, and extended by, these new listeners.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.5.0 - 2014-06-06

Added

  • Double tap gesture supported (configurable to zoom in or reset to default range)
  • Custom baseline can be set on a CartesianSeries
  • Multi-line tick mark labels
  • Individual customization of tick marks
  • Custom tick mark values can be provided to an axis
  • Configurable crosshair behavior (Single Series/Floating mode, configurable Out Of Range and line drawing behavior, switch interpolation off/on for LineSeries)
  • Range padding can be set on axes

Removed

  • The previously deprecated ShinobiChart.isRadial has now been removed. Inspect the type of the series that the chart holds directly instead. This is in response to the deprecation of RadialSeries. An enumerated type may be introduced in a future release that depicts the type of the chart.
  • The previously deprecated RadialSeries has now been removed. Use PieDonutSeries instead. This restructure brings the Android version in-line with structural changes in the iOS version. Pie and Donut series are special cases and do not fit with the ‘radial’ description.
  • The previously deprecated RadialSeries.DrawDirection has now been removed. Use PieDonutSeries.DrawDirection instead. The enum has been moved due to the deprecation of RadialSeries.
  • The previously deprecated RadialSeries.RadialEffect has now been removed. Use PieDonutSeries.RadialEffect instead. The enum has been moved due to the deprecation of RadialSeries.
  • The previously deprecated PieSeriesStyle/DonutSeriesStyle.getChartEffect has now been removed . Use PieSeriesStyle/DonutSeriesStyle.getRadialEffect instead. This is both a rename to make the method more descriptive and a change to use the new PieDonutSeries.RadialEffect enum.
  • The previously deprecated PieSeriesStyle/DonutSeriesStyle.setChartEffect has now been removed. Use PieSeriesStyle/DonutSeriesStyle.setRadialEffect instead. This is both a rename to make the method more descriptive and a change to use the new PieDonutSeries.RadialEffect enum.
  • The previously deprecated PieDonutSeries.setDrawDirection(RadialSeries.DrawDirection) has now been removed. Use PieDonutSeries.setDrawDirection(PieDonutSeries.DrawDirection) instead. This is a change to use the new PieDonutSeries.DrawDirection enum.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 and Samsung Galaxy Tab P7500R devices running Android 3.2. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.4.1 - 2014-03-26

Added

  • Charts may now have Annotations (Premium only)
  • XML based Themes for charts (Standard and Premium)
  • Snapshot of a chart can now be taken (Standard and Premium)
  • Pie/Donut slice labels can be customized (Standard and Premium)
  • Chart, Axis and Legend titles can be given padding and margin through their style objects (Standard and Premium)

Deprecated

  • ShinobiChart.isRadial has been deprecated (and will be removed in v1.5). Inspect the type of the series that the chart holds directly instead. This is in response to the deprecation of RadialSeries. An enumerated type may be introduced in a future release that depicts the type of the chart.
  • RadialSeries has been deprecated (and will be removed in v1.5). Use PieDonutSeries instead. This restructure brings the Android version in-line with structural changes coming in the iOS version. Pie and Donut series are special cases and do not fit with the ‘radial’ description.
  • RadialSeries.DrawDirection has been deprecated (and will be removed in v1.5). Use PieDonutSeries.DrawDirection instead. The enum has been moved due to the deprecation of RadialSeries.
  • RadialSeries.RadialEffect has been deprecated (and will be removed in v1.5). Use PieDonutSeries.RadialEffect instead. The enum has been moved due to the deprecation of RadialSeries.
  • PieSeriesStyle/DonutSeriesStyle.getChartEffect has been deprecated (and will be removed in v1.5). Use PieSeriesStyle/DonutSeriesStyle.getRadialEffect instead. This is both a rename to make the method more descriptive and a change to use the new PieDonutSeries.RadialEffect enum.
  • PieSeriesStyle/DonutSeriesStyle.setChartEffect has been deprecated (and will be removed in v1.5). Use PieSeriesStyle/DonutSeriesStyle.setRadialEffect instead. This is both a rename to make the method more descriptive and a change to use the new PieDonutSeries.RadialEffect enum.
  • PieDonutSeries.setDrawDirection(RadialSeries.DrawDirection) has been deprecated (and will be removed in v1.5). Use PieDonutSeries.setDrawDirection(PieDonutSeries.DrawDirection) instead. This is a change to use the new PieDonutSeries.DrawDirection enum. This will also affect the DrawDirection property in Xamarin.Android (and cause a breaking change - see below).
  • PieDonutSerues.getDrawDirection now returns a PieDonutSeries.DrawDirection instead of a RadialSeries.DrawDirection due to the repositioning of this enum. This will also affect the DrawDirection property in Xamarin.Android.
  • The previously deprecated Axis.configureBarColumns has now been removed. Use Axis.specifyBarColumnSpacing instead. This is a rename and parameter type change making the method use user data types rather than internally scaled data, and also resolves a bug in the previous version.
  • The previously deprecated ShinobiChart.getAllAxes has now been removed. Use ShinobiChart.getAllXAxes or ShinobiChart.getAllYAxes instead. This is felt to be extraneous, unnecessary API and its functionality can be easily matched by using the proposed alternatives. Removal will improve the conciseness and clarity of the library.
  • The previously deprecated ShinobiChart.getPrimaryAxes has now been removed. Use ShinobiChart.getXAxis or ShinobiChart.getYAxis instead. This is felt to be extraneous, unnecessary API and its functionality can be easily matched by using the proposed alternatives. Removal will improve the conciseness and clarity of the library.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4. This is separate to a previous known issue involving rotating pie/donut charts by gesture selection (which has been addressed). This issue seems to be caused by a Samsung driver bug which has been fixed for newer devices but, currently, there are no plans for it to be fixed in older devices and as such we are unable to provide a workaround.

1.3.5 - 2014-03-14

Changed

  • The Xamarin.Android ShinobiCharts for Android library is now built with Xamarin.Android.Support.v4.dll (from the Xamarin Component Store) rather than the Mono.Android.Support.v4.dll. This prevents ‘Duplicate managed type found!’ errors when using the Xamarin.Android.Support.v4.dll (which is now recommended by Xamarin) in your app.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 when rotating pie/donut charts by gesture selection. This has not been observed on other devices/version, and a workaround is to not show the pie/donut crust.

1.3.3 2014-02-07

Added

  • ShinobiCharts for Android is now available in Premium and Standard editions.
  • Bar, Column and Line series may now be stacked. (Standard and Premium)
  • Charts may now have multiple X and Y axes (Premium only)
  • Band, Candlestick and OHLC series added (Premium only)

Deprecated

  • Axis.configureBarColumns has been deprecated (and will be removed in V1.4). Use Axis.specifyBarColumnSpacing instead. This is a rename and parameter type change making the method use user data types rather than internally scaled data, and also resolves a bug in the previous version.
  • ShinobiChart.getAllAxes has been deprecated (and will be removed in V1.4). Use ShinobiChart.getAllXAxes or ShinobiChart.getAllYAxes instead. This is felt to be extraneous, unnecessary API and its functionality can be easily matched by using the proposed alternatives. Removal will improve the conciseness and clarity of the library.
  • ShinobiChart.getPrimaryAxes has been deprecated (and will be removed in V1.4). Use ShinobiChart.getXAxis or ShinobiChart.getYAxis instead. This is felt to be extraneous, unnecessary API and its functionality can be easily matched by using the proposed alternatives. Removal will improve the conciseness and clarity of the library.

Removed

  • The previously deprecated ShinobiChart.getPlotAreaFrame has now been removed. Use ShinobiChart.getPlotAreaRect instead. This is a simple rename to bring the API into line with Android naming conventions, rather than word for word equivalence with the iOS version.
  • The previously deprecated ShinobiChart.OnPanZoomGestureListener has now been removed. Use ShinobiChart.OnGestureListener instead. This is because with the addition of the selection and crosshair features, we now have the complete set of user gestures recognised by Shinobi charts.
  • The previously deprecated ShinobiChart.setOnPanZoomGestureListener has now been removed. Use ShinobiChart.setOnGestureListener instead. This is because with the addition of the selection and crosshair features, we now have the complete set of user gestures recognised by Shinobi charts.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 when rotating pie/donut charts by gesture selection. This has not been observed on other devices/version, and a workaround is to not show the pie/donut crust.

1.2.0 - 2013-11-21

Added

  • Crosshair functionality and formatting options.
  • Axis grid lines and stripe options.
  • Tick mark label formatting options.
  • Tick mark frequency options.
  • Selection of series and points by API and/or user gesture.
  • Notification of touch selection events.

Deprecated

  • ShinobiChart.getPlotAreaFrame has been deprecated (and will be removed in V1.3). Use ShinobiChart.getPlotAreaRect instead. This is a simple rename to bring the API into line with Android naming conventions, rather than word for word equivalence with the iOS version.
  • ShinobiChart.OnPanZoomGestureListener has been deprecated (and will be removed in V1.3). Use ShinobiChart.OnGestureListener instead. This is because with the addition of the selection and crosshair features, we now have the complete set of user gestures recognised by Shinobi charts.
  • ShinobiChart.setOnPanZoomGestureListener has been deprecated (and will be removed in V1.3). Use ShinobiChart.setOnGestureListener instead. This is because with the addition of the selection and crosshair features, we now have the complete set of user gestures recognised by Shinobi charts.

Removed

  • The previously deprecated Axis.configureColumns has now been removed. Use Axis.configureBarColumns instead. This is a rename triggered by a simple consolidation of 2 near-identical methods in the iOS version.
  • The previously deprecated Axis.requestCurrentDisplayedRange(T minimum, T maximum, boolean animation) has now been removed. Use Axis.requestCurrentDisplayedRange(T minimum, T maximum) or Axis.requestCurrentDisplayedRange(T minimum, T maximum, boolean animation, boolean bounceAtLimits) instead. The previously deprecated CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum, boolean animation) has now been removed. Use CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum) or CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum, boolean animation, boolean bounceAtLimits) instead. This normalises and clarifies the requestCurrentDisplayedRange API.
  • The previously deprecated PieDonutSeriesStyle.getLabelFont, setLabelFont, getLabelFontColor, setLabelFontColor, getLabelFontSize, setLabelFontSize have now been removed. Use PieDonutSeriesStyle.getLabelTypeface, setLabelTypeface, getLabelTextColor, setLabelTextColor, getLabelTextSize, setLabelTextSize. This is a simple rename to bring the API into line with Android naming conventions, rather than word for word equivalence with the iOS version.
  • In the Xamarin API, some methods and properties previously using Java.Lang.Double or Java.Utils.Date types have been converted to Nullable<double> or Nullable<DateTime>. These are DateTimeAxis.GetUserValueForPixelValue, NumberAxis.GetUserValueForPixelValue, NumberAxis.MajorTickFrequency, NumberAxis.MinorTickFrequency, NumberAxis.CurrentMajorTickFrequency, NumberAxis.CurrentMinorTickFrequency. This is to reduce the need for conversion in client code, and in most cases will not actually be a breaking change.

Known Issue

  • Random GL crashes have been observed on Samsung Galaxy Tab P7510 devices running Android 4.0.4 when rotating pie/donut charts by gesture selection. This has not been observed on other devices/version, and a workaround is to not show the pie/donut crust.

1.1.2 - 2013-10-16

Added

  • Bar series.
  • Legends.
  • Axis and Tick mark styling.
  • Pan/zoom and axis motion notifications.
  • Tick mark clipping options

Changed

  • The behavior of Axis.requestCurrentDisplayedRange(T minimum, T maximum) and Axis.requestCurrentDisplayedRange(T minimum, T maximum, boolean animation, boolean bounceAtLimits) (and their CategoryAxis equivalents) is subtly changed to increase clarity. In the 2 parameter overloads the calls respect the class-level values set by Axis.enableAnimation and Axis.enableBounceAtLimits. In the 4 parameter overload, you can explicitly override those settings for the call. Previously the class-level value was combined with the animation parameter in the (now deprecated) 3 parameter overload, leading to obscure and bug-like behavior. Additionally, a true return value for all these methods now indicates the call was able to honor the requested range change, rather than having it limited by other API settings. The previous return value was poorly defined and not entirely consistent.

Deprecated

  • PieDonutSeriesStyle.getLabelFont, setLabelFont, getLabelFontColor, setLabelFontColor, getLabelFontSize, setLabelFontSize have been deprecated (and will be removed in V1.2). Use PieDonutSeriesStyle.getLabelTypeface, setLabelTypeface, getLabelTextColor, setLabelTextColor, getLabelTextSize, setLabelTextSize. This is a simple rename to bring the API into line with Android naming conventions, rather than word for word equivalence with the iOS version.
  • Axis.configureColumns has been deprecated (and will be removed in V1.2). Use Axis.configureBarColumns instead. This is a rename triggered by a simple consolidation of 2 near-identical methods in the iOS version.
  • Axis.requestCurrentDisplayedRange(T minimum, T maximum, boolean animation) has been deprecated (and will be removed in V1.2). Use Axis.requestCurrentDisplayedRange(T minimum, T maximum) or Axis.requestCurrentDisplayedRange(T minimum, T maximum, boolean animation, boolean bounceAtLimits) instead. CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum, boolean animation) deprecated (and will be removed in V1.2). Use CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum) or CategoryAxis.requestCurrentDisplayedRange(int minimum, int maximum, boolean animation, boolean bounceAtLimits) instead. This normalises and clarifies the requestCurrentDisplayedRange API, and is related to the behavioral change below

Removed

  • AxisStyle.getMinorTickStyle, setMinorTickStyle, getMajorTickStyle and setMajorTickStyle have been replaced with getTickStyle, setTickStyle. TickStyle.areTicksShown and setTicksShown replaced with areMajorTicksShown, setMajorTicksShown, areMinorTicksShown and setMinorTicksShown. There is now only one tick style on the axis style, covering both minor and major tick marks. This brings the API into line with actual behavior in the styling scenarios, and is a breaking change because making the behavior change with the existing API would have resulted in inconsistency. N.B. For Xamarin users these are properties.

1.0.2 - 2013-09-20

Added

  • Xamarin.Android support
  • Major performance increase to pan/zoom
  • Line chart point colors and radii
  • User can control the visibility of tick marks and labels
  • User can enable/disable fling gesture operations
  • Category axes
  • Default styling equivalent to SChartLightTheme in iOS version

0.1.1 - 2013-09-09

Added

  • Donut series. A pie series with inner and outer radii.
  • Radial series labels. Pie and donut series can display the X portion of their data points as text labels on their slices
  • Date/time axes and ranges. An axis that is designed to work with Date/time data points, with an associated range type.
  • Pan and zoom. Cartesian series types can be panned and zoomed by touch gestures (momentum not yet implemented).
  • Multiple series of different types, with automatic color assignment.
  • Minor API additions around axis ranges.

0.1.0 - 2013-09-04

Added

  • ChartFragment - add a Chart as a self-contained Fragment. You can subclass ChartFragment and override onCreate() to set up your chart, or set it up from within an Activity.
  • SupportChartFragment - an alternate version of ChartFragment compatible below Android API 12.
  • ChartView - an Android widget used to add a chart directly to an Activity. It is advised that you use ChartFragment rather than interact directly with a ChartView, due to the need for manual lifecycle management.
  • ShinobiChart interface - used to interact with a chart, such as adding axes or series. Obtained by calling getShinobiChart() from your ChartView or ChartFragment.
  • Axis - an abstract base class to represent a chart axis. Add an axis using ShinobiChart.setXAxis or ShinobiChart.setYAxis.
  • NumberAxis - a numeric linear axis.
  • DataAdapter<Tx, Ty> interface - a collection of individual data points that will be plotted on a series. Responsible for notifying a series when its data changes.
  • SimpleDataAdapter<Tx, Ty> - the standard implementation of DataAdapter<Tx, Ty> which notifies the series of data changes as soon as a point is added or removed.
  • Data<Tx, Ty> interface - represents a data point that is contained within a DataAdapter<Tx, Ty>.
  • DataPoint<Tx, Ty> - the standard implementation of DataAdapter<Tx, Ty>.
  • Series - abstract base class to represent a chart series. Add a series using ShinobiChart.addSeries. Call Series.setDataAdapter to associate a DataAdapter with a series.
  • LineSeries - A cartesian series displaying data points as individual points, connected by a line.
  • ColumnSeries - A cartesian series displaying data points as blocks from a baseline of 0 on the y axis, extending to the y-value specified in a data point.
  • PieSeries - A radial series displaying data points as a proportion of a circle. Only one pie series can be added to a chart. A ShinobiChart with a PieSeries added to it does not require an Axis.
  • SeriesStyle and its subclasses LineSeriesStyle, ColumnSeriesStyle and PieSeriesStyle - these objects are held by a series and contain all visual properties relating to that type of series. Call Series.getStyle to obtain a style object. Remember to call ShinobiChart.redrawChart after all style changes are made.