diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.java b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.java deleted file mode 100644 index 4cf544874b..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.java +++ /dev/null @@ -1,27 +0,0 @@ - -package com.github.mikephil.charting.data; - -import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; - -import java.util.ArrayList; -import java.util.List; - -/** - * Data object that encapsulates all data associated with a LineChart. - * - * @author Philipp Jahoda - */ -public class LineData extends BarLineScatterCandleBubbleData { - - public LineData() { - super(); - } - - public LineData(ILineDataSet... dataSets) { - super(dataSets); - } - - public LineData(List dataSets) { - super(dataSets); - } -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.kt new file mode 100644 index 0000000000..232803aa6f --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineData.kt @@ -0,0 +1,14 @@ +package com.github.mikephil.charting.data + +import com.github.mikephil.charting.interfaces.datasets.ILineDataSet + +/** + * Data object that encapsulates all data associated with a LineChart. + */ +class LineData : BarLineScatterCandleBubbleData { + constructor() : super() + + constructor(vararg dataSets: ILineDataSet) : super(*dataSets) + + constructor(dataSets: MutableList?) : super(dataSets) +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineDataSet.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineDataSet.kt index 7459f9cea8..d7c79de874 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineDataSet.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/LineDataSet.kt @@ -14,7 +14,7 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad /** * Drawing mode for this line dataset */ - private var mLineDataSetMode: Mode? = Mode.LINEAR + private var mLineDataSetMode: Mode = Mode.LINEAR /** * returns all colors specified for the circles @@ -109,89 +109,16 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad lineDataSet.mLineDataSetMode = mLineDataSetMode } - /** - * Returns the drawing mode for this line dataset - */ - override fun getLineMode(): Mode? { - return mLineDataSetMode - } - - /** - * Returns the drawing mode for this LineDataSet - */ - fun setLineMode(mode: Mode?) { - mLineDataSetMode = mode - } - - /** - * Sets the intensity for cubic lines (if enabled). Max = 1f = very cubic, - * Min = 0.05f = low cubic effect, Default: 0.2f - */ - fun setCubicIntensity(intensity: Float) { - var intensity = intensity - if (intensity > 1f) { - intensity = 1f - } - if (intensity < 0.05f) { - intensity = 0.05f - } - - mCubicIntensity = intensity - } - - override fun getCubicIntensity(): Float { - return mCubicIntensity - } - - - /** - * Sets the radius of the drawn circles. - * Default radius = 4f, Min = 1f - */ - fun setCircleRadius(radius: Float) { - if (radius >= 1f) { - mCircleRadius = radius.convertDpToPixel() - } else { - Log.e("LineDataSet", "Circle radius cannot be < 1") - } - } - - override fun getCircleRadius(): Float { - return mCircleRadius - } - - /** - * Sets the hole radius of the drawn circles. - * Default radius = 2f, Min = 0.5f - */ - fun setCircleHoleRadius(holeRadius: Float) { - if (holeRadius >= 0.5f) { - mCircleHoleRadius = holeRadius.convertDpToPixel() - } else { - Log.e("LineDataSet", "Circle radius cannot be < 0.5") - } - } - - override fun getCircleHoleRadius(): Float { - return mCircleHoleRadius - } - - @get:Deprecated("") - @set:Deprecated("") + @get:Deprecated("Deprecated because of unclarity. Use getCircleRadius instead") + @set:Deprecated("Deprecated because of unclarity. Use getCircleRadius instead") var circleSize: Float - /** - * This function is deprecated because of unclarity. Use getCircleRadius instead. - */ get() = circleRadius /** * sets the size (radius) of the circle shpaed value indicators, * default size = 4f - * - * - * This method is deprecated because of unclarity. Use setCircleRadius instead. */ set(size) { - setCircleRadius(size) + circleRadius = size } /** @@ -211,50 +138,114 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad ) } - /** - * Disables the line to be drawn in dashed mode. - */ - fun disableDashedLine() { - mDashPathEffect = null - } + override var lineMode: Mode + get() = mLineDataSetMode + set(value) { + mLineDataSetMode = value + } + override var cubicIntensity: Float + get() = mCubicIntensity + set(value) { + /** + * Sets the intensity for cubic lines (if enabled). Max = 1f = very cubic, + * Min = 0.05f = low cubic effect, Default: 0.2f + */ + var intensity = value + if (intensity > 1f) { + intensity = 1f + } + if (intensity < 0.05f) { + intensity = 0.05f + } - override fun isDashedLineEnabled(): Boolean { - return mDashPathEffect != null - } + mCubicIntensity = intensity + } - override fun getDashPathEffect(): DashPathEffect? { - return mDashPathEffect - } + @Suppress("OVERRIDE_DEPRECATION") + override val isDrawCubicEnabled: Boolean + get() = mLineDataSetMode == Mode.CUBIC_BEZIER + + @Suppress("OVERRIDE_DEPRECATION") + override val isDrawSteppedEnabled: Boolean + get() = mLineDataSetMode == Mode.STEPPED + override var circleRadius: Float + get() = mCircleRadius + set(value) { + /** + * Sets the radius of the drawn circles. + * Default radius = 4f, Min = 1f + */ + if (value >= 1f) { + mCircleRadius = value.convertDpToPixel() + } else { + Log.e("LineDataSet", "Circle radius cannot be < 1") + } + } - /** - * set this to true to enable the drawing of circle indicators for this - * DataSet, default true - */ - fun setDrawCircles(enabled: Boolean) { - this.mDrawCircles = enabled - } + override var circleHoleRadius: Float + get() = mCircleHoleRadius + set(value) { + /** + * Sets the hole radius of the drawn circles. + * Default radius = 2f, Min = 0.5f + */ + if (value >= 0.5f) { + mCircleHoleRadius = value.convertDpToPixel() + } else { + Log.e("LineDataSet", "Circle radius cannot be < 0.5") + } + } - override fun isDrawCirclesEnabled(): Boolean { - return mDrawCircles + override fun getCircleColor(index: Int): Int { + return circleColors!![index]!! } - @Deprecated("") - override fun isDrawCubicEnabled(): Boolean { - return mLineDataSetMode == Mode.CUBIC_BEZIER - } + override val circleColorCount: Int + get() = circleColors!!.size - @Deprecated("") - override fun isDrawSteppedEnabled(): Boolean { - return mLineDataSetMode == Mode.STEPPED - } + override var isDrawCirclesEnabled: Boolean + get() = mDrawCircles + set(value) { + mDrawCircles = value + } + override var circleHoleColor: Int + get() = mCircleHoleColor + set(value) { + mCircleHoleColor = value + } + override var isDrawCircleHoleEnabled: Boolean + get() = mDrawCircleHole + set(value) { + mDrawCircleHole = value + } + override var dashPathEffect: DashPathEffect? + get() = mDashPathEffect + set(value) { + mDashPathEffect = value + } - override fun getCircleColor(index: Int): Int { - return circleColors!!.get(index)!! - } + /** + * set it with method enableDashedLine(..) + */ + override var isDashedLineEnabled: Boolean + get() = mDashPathEffect != null + set(value) { + mDashPathEffect = null + } - override fun getCircleColorCount(): Int { - return circleColors!!.size - } + /** + * Sets a custom IFillFormatter to the chart that handles the position of the + * filled-line for each DataSet. Set this to null to use the default logic. + */ + override var fillFormatter: IFillFormatter? + get() = mFillFormatter + set(value) { + if (value == null) { + mFillFormatter = DefaultFillFormatter() + } else { + mFillFormatter = value + } + } /** * Sets the colors that should be used for the circles of this DataSet. @@ -278,7 +269,7 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad fun setCircleColors(colors: IntArray, c: Context) { var clrs = this.circleColors if (clrs == null) { - clrs = ArrayList() + clrs = ArrayList() } clrs.clear() @@ -308,44 +299,6 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad circleColors!!.clear() } - /** - * Sets the color of the inner circle of the line-circles. - */ - fun setCircleHoleColor(color: Int) { - mCircleHoleColor = color - } - - override fun getCircleHoleColor(): Int { - return mCircleHoleColor - } - - /** - * Set this to true to allow drawing a hole in each data circle. - */ - fun setDrawCircleHole(enabled: Boolean) { - mDrawCircleHole = enabled - } - - override fun isDrawCircleHoleEnabled(): Boolean { - return mDrawCircleHole - } - - /** - * Sets a custom IFillFormatter to the chart that handles the position of the - * filled-line for each DataSet. Set this to null to use the default logic. - */ - fun setFillFormatter(formatter: IFillFormatter?) { - if (formatter == null) { - mFillFormatter = DefaultFillFormatter() - } else { - mFillFormatter = formatter - } - } - - override fun getFillFormatter(): IFillFormatter? { - return mFillFormatter - } - enum class Mode { LINEAR, STEPPED, diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.java b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.kt similarity index 57% rename from MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.java rename to MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.kt index 2f352ad213..7e57a891fd 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/ILineDataSet.kt @@ -1,82 +1,77 @@ -package com.github.mikephil.charting.interfaces.datasets; +package com.github.mikephil.charting.interfaces.datasets -import android.graphics.DashPathEffect; - -import com.github.mikephil.charting.data.Entry; -import com.github.mikephil.charting.data.LineDataSet; -import com.github.mikephil.charting.formatter.IFillFormatter; - -/** - * Created by Philpp Jahoda on 21/10/15. - */ -public interface ILineDataSet extends ILineRadarDataSet { +import android.graphics.DashPathEffect +import com.github.mikephil.charting.data.Entry +import com.github.mikephil.charting.data.LineDataSet +import com.github.mikephil.charting.formatter.IFillFormatter +interface ILineDataSet : ILineRadarDataSet { /** * Returns the drawing mode for this line dataset */ - LineDataSet.Mode getLineMode(); + var lineMode: LineDataSet.Mode /** * Returns the intensity of the cubic lines (the effect intensity). * Max = 1f = very cubic, Min = 0.05f = low cubic effect, Default: 0.2f */ - float getCubicIntensity(); + var cubicIntensity: Float - @Deprecated - boolean isDrawCubicEnabled(); + @get:Deprecated("") + val isDrawCubicEnabled: Boolean - @Deprecated - boolean isDrawSteppedEnabled(); + @get:Deprecated("") + val isDrawSteppedEnabled: Boolean /** * Returns the size of the drawn circles. */ - float getCircleRadius(); + var circleRadius: Float /** * Returns the hole radius of the drawn circles. */ - float getCircleHoleRadius(); + var circleHoleRadius: Float /** * Returns the color at the given index of the DataSet's circle-color array. * Performs a IndexOutOfBounds check by modulus. */ - int getCircleColor(int index); + fun getCircleColor(index: Int): Int /** * Returns the number of colors in this DataSet's circle-color array. */ - int getCircleColorCount(); + val circleColorCount: Int /** * Returns true if drawing circles for this DataSet is enabled, false if not */ - boolean isDrawCirclesEnabled(); + var isDrawCirclesEnabled: Boolean /** * Returns the color of the inner circle (the circle-hole). */ - int getCircleHoleColor(); + var circleHoleColor: Int /** * Returns true if drawing the circle-holes is enabled, false if not. */ - boolean isDrawCircleHoleEnabled(); + var isDrawCircleHoleEnabled: Boolean /** * Returns the DashPathEffect that is used for drawing the lines. */ - DashPathEffect getDashPathEffect(); + var dashPathEffect: DashPathEffect? /** * Returns true if the dashed-line effect is enabled, false if not. * If the DashPathEffect object is null, also return false here. */ - boolean isDashedLineEnabled(); + var isDashedLineEnabled: Boolean /** * Returns the IFillFormatter that is set for this DataSet. */ - IFillFormatter getFillFormatter(); + var fillFormatter: IFillFormatter? } \ No newline at end of file diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LineChartRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LineChartRenderer.kt index b731cb9507..2c863cb7ab 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LineChartRenderer.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LineChartRenderer.kt @@ -77,8 +77,11 @@ open class LineChartRenderer( val lineData = dataProvider.lineData - for (set in lineData.dataSets) { - if (set.isVisible) drawDataSet(canvas, set) + lineData.dataSets.forEach { set -> + set?.let { + if (it.isVisible) + drawDataSet(canvas, set) + } } canvas.drawBitmap(drawBitmapLocal, 0f, 0f, null) } @@ -225,7 +228,7 @@ open class LineChartRenderer( } protected fun drawCubicFill(canvas: Canvas, dataSet: ILineDataSet, spline: Path, trans: Transformer, bounds: XBounds) { - val fillMin = dataSet.fillFormatter.getFillLinePosition(dataSet, dataProvider) + val fillMin = dataSet.fillFormatter!!.getFillLinePosition(dataSet, dataProvider) dataSet.getEntryForIndex(bounds.min + bounds.range)?.let { spline.lineTo(it.x, fillMin) @@ -444,7 +447,7 @@ open class LineChartRenderer( * @param outputPath The path object that will be assigned the chart data. */ private fun generateFilledPath(dataSet: ILineDataSet, startIndex: Int, endIndex: Int, outputPath: Path) { - val fillMin = dataSet.fillFormatter.getFillLinePosition(dataSet, dataProvider) + val fillMin = dataSet.fillFormatter!!.getFillLinePosition(dataSet, dataProvider) val phaseY = animator.phaseY val isDrawSteppedEnabled = dataSet.lineMode == LineDataSet.Mode.STEPPED @@ -486,73 +489,75 @@ open class LineChartRenderer( for (i in dataSets.indices) { val dataSet = dataSets[i] - if (dataSet.entryCount == 0) { - continue - } - if (!shouldDrawValues(dataSet) || dataSet.entryCount < 1) { - continue - } - - // apply the text-styling defined by the DataSet - applyValueTextStyle(dataSet) - - val trans = dataProvider.getTransformer(dataSet.axisDependency) + dataSet?.let { + if (dataSet.entryCount == 0) { + continue + } + if (!shouldDrawValues(dataSet) || dataSet.entryCount < 1) { + continue + } - // make sure the values do not interfear with the circles - var valOffset = (dataSet.circleRadius * 1.75f).toInt() + // apply the text-styling defined by the DataSet + applyValueTextStyle(dataSet) - if (!dataSet.isDrawCirclesEnabled) valOffset = valOffset / 2 + val trans = dataProvider.getTransformer(dataSet.axisDependency) - xBounds.set(dataProvider, dataSet) + // make sure the values do not interfear with the circles + var valOffset = (dataSet.circleRadius * 1.75f).toInt() - val positions = trans!!.generateTransformedValuesLine( - dataSet, animator.phaseX, animator - .phaseY, xBounds.min, xBounds.max - ) + if (!dataSet.isDrawCirclesEnabled) valOffset = valOffset / 2 - val iconsOffset = MPPointF.getInstance(dataSet.iconsOffset) - iconsOffset.x = iconsOffset.x.convertDpToPixel() - iconsOffset.y = iconsOffset.y.convertDpToPixel() + xBounds.set(dataProvider, dataSet) - var j = 0 - while (j < positions.size) { - val x = positions[j] - val y = positions[j + 1] + val positions = trans!!.generateTransformedValuesLine( + dataSet, animator.phaseX, animator + .phaseY, xBounds.min, xBounds.max + ) - if (!viewPortHandler.isInBoundsRight(x)) break + val iconsOffset = MPPointF.getInstance(dataSet.iconsOffset) + iconsOffset.x = iconsOffset.x.convertDpToPixel() + iconsOffset.y = iconsOffset.y.convertDpToPixel() - if (!viewPortHandler.isInBoundsLeft(x) || !viewPortHandler.isInBoundsY(y)) { - j += 2 - continue - } + var j = 0 + while (j < positions.size) { + val x = positions[j] + val y = positions[j + 1] - val entry = dataSet.getEntryForIndex(j / 2 + xBounds.min) + if (!viewPortHandler.isInBoundsRight(x)) break - if (entry != null) { - if (dataSet.isDrawValues) { - drawValue( - canvas, dataSet.valueFormatter, entry.y, entry, i, x, - y - valOffset, dataSet.getValueTextColor(j / 2) - ) + if (!viewPortHandler.isInBoundsLeft(x) || !viewPortHandler.isInBoundsY(y)) { + j += 2 + continue } - if (entry.icon != null && dataSet.isDrawIcons) { - val icon = entry.icon + val entry = dataSet.getEntryForIndex(j / 2 + xBounds.min) - icon?.let { - Utils.drawImage( - canvas, - it, - (x + iconsOffset.x).toInt(), - (y + iconsOffset.y).toInt() + if (entry != null) { + if (dataSet.isDrawValues) { + drawValue( + canvas, dataSet.valueFormatter, entry.y, entry, i, x, + y - valOffset, dataSet.getValueTextColor(j / 2) ) } + + if (entry.icon != null && dataSet.isDrawIcons) { + val icon = entry.icon + + icon?.let { + Utils.drawImage( + canvas, + it, + (x + iconsOffset.x).toInt(), + (y + iconsOffset.y).toInt() + ) + } + } } + j += 2 } - j += 2 - } - MPPointF.recycleInstance(iconsOffset) + MPPointF.recycleInstance(iconsOffset) + } } } } @@ -588,57 +593,58 @@ open class LineChartRenderer( for (i in dataSets.indices) { val dataSet = dataSets[i] + dataSet?.let { + if (!dataSet.isVisible || !dataSet.isDrawCirclesEnabled || dataSet.entryCount == 0) continue - if (!dataSet.isVisible || !dataSet.isDrawCirclesEnabled || dataSet.entryCount == 0) continue + circlePaintInner.color = dataSet.circleHoleColor - circlePaintInner.color = dataSet.circleHoleColor - - val trans = dataProvider.getTransformer(dataSet.axisDependency) + val trans = dataProvider.getTransformer(dataSet.axisDependency) - xBounds.set(dataProvider, dataSet) + xBounds.set(dataProvider, dataSet) - val circleRadius = dataSet.circleRadius - val circleHoleRadius = dataSet.circleHoleRadius - val drawCircleHole = dataSet.isDrawCircleHoleEnabled && circleHoleRadius < circleRadius && circleHoleRadius > 0f - val drawTransparentCircleHole = drawCircleHole && - dataSet.circleHoleColor == ColorTemplate.COLOR_NONE + val circleRadius = dataSet.circleRadius + val circleHoleRadius = dataSet.circleHoleRadius + val drawCircleHole = dataSet.isDrawCircleHoleEnabled && circleHoleRadius < circleRadius && circleHoleRadius > 0f + val drawTransparentCircleHole = drawCircleHole && + dataSet.circleHoleColor == ColorTemplate.COLOR_NONE - val imageCache: DataSetImageCache? + val imageCache: DataSetImageCache? - if (mImageCaches.containsKey(dataSet)) { - imageCache = mImageCaches[dataSet] - } else { - imageCache = DataSetImageCache() - mImageCaches[dataSet] = imageCache - } + if (mImageCaches.containsKey(dataSet)) { + imageCache = mImageCaches[dataSet] + } else { + imageCache = DataSetImageCache() + mImageCaches[dataSet] = imageCache + } - val changeRequired = imageCache!!.init(dataSet) + val changeRequired = imageCache!!.init(dataSet) - // only fill the cache with new bitmaps if a change is required - if (changeRequired) { - imageCache.fill(dataSet, drawCircleHole, drawTransparentCircleHole) - } + // only fill the cache with new bitmaps if a change is required + if (changeRequired) { + imageCache.fill(dataSet, drawCircleHole, drawTransparentCircleHole) + } - val boundsRangeCount = xBounds.range + xBounds.min + val boundsRangeCount = xBounds.range + xBounds.min - for (j in xBounds.min..boundsRangeCount) { - val e = dataSet.getEntryForIndex(j) ?: break + for (j in xBounds.min..boundsRangeCount) { + val e = dataSet.getEntryForIndex(j) ?: break - mCirclesBuffer[0] = e.x - mCirclesBuffer[1] = e.y * phaseY + mCirclesBuffer[0] = e.x + mCirclesBuffer[1] = e.y * phaseY - trans!!.pointValuesToPixel(mCirclesBuffer) + trans!!.pointValuesToPixel(mCirclesBuffer) - if (!viewPortHandler.isInBoundsRight(mCirclesBuffer[0])) break + if (!viewPortHandler.isInBoundsRight(mCirclesBuffer[0])) break - if (!viewPortHandler.isInBoundsLeft(mCirclesBuffer[0]) || - !viewPortHandler.isInBoundsY(mCirclesBuffer[1]) - ) continue + if (!viewPortHandler.isInBoundsLeft(mCirclesBuffer[0]) || + !viewPortHandler.isInBoundsY(mCirclesBuffer[1]) + ) continue - val circleBitmap = imageCache.getBitmap(j) + val circleBitmap = imageCache.getBitmap(j) - if (circleBitmap != null) { - canvas.drawBitmap(circleBitmap, mCirclesBuffer[0] - circleRadius, mCirclesBuffer[1] - circleRadius, null) + if (circleBitmap != null) { + canvas.drawBitmap(circleBitmap, mCirclesBuffer[0] - circleRadius, mCirclesBuffer[1] - circleRadius, null) + } } } } diff --git a/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt index 33e770529d..16ca4d0fc1 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/AnotherBarActivity.kt @@ -125,7 +125,7 @@ class AnotherBarActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt index ad0e62177e..176f5eeef0 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivity.kt @@ -203,7 +203,7 @@ class BarChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() @@ -211,7 +211,7 @@ class BarChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect R.id.actionToggleIcons -> { for (set in chart!!.data!!.dataSets) - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt index 6a961885bb..0d6cc3a330 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivityMultiDataset.kt @@ -194,7 +194,7 @@ class BarChartActivityMultiDataset : DemoBase(), OnSeekBarChangeListener, OnChar R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt index 9b4aea2fbd..58cd30fdfa 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BarChartActivitySinus.kt @@ -132,7 +132,7 @@ class BarChartActivitySinus : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleValues -> { binding.chart1.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt index 647e067c27..5dcdf0e141 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/BubbleChartActivity.kt @@ -168,14 +168,14 @@ class BubbleChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSel R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { for (set in chart!!.data!!.dataSets) - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt index 3f92475b77..412f83ca22 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CandleStickChartActivity.kt @@ -149,14 +149,14 @@ class CandleStickChartActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { for (set in chart!!.data!!.dataSets) - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt index 5dbe1ca4d6..0b3f688a9d 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt @@ -110,7 +110,7 @@ class CombinedChartActivity : DemoBase() { set.circleRadius = 5f set.fillColor = Color.rgb(240, 238, 70) set.lineMode = LineDataSet.Mode.CUBIC_BEZIER - set.isDrawValues = true + set?.isDrawValues = true set.valueTextSize = 10f set.setSingleValueTextColor(Color.rgb(240, 238, 70)) @@ -172,7 +172,7 @@ class CombinedChartActivity : DemoBase() { val set = ScatterDataSet(entries, "Scatter DataSet") set.setColors(*ColorTemplate.MATERIAL_COLORS) set.scatterShapeSize = 7.5f - set.isDrawValues = false + set?.isDrawValues = false set.valueTextSize = 10f d.addDataSet(set) @@ -195,7 +195,7 @@ class CombinedChartActivity : DemoBase() { set.shadowColor = Color.DKGRAY set.setBarSpace(0.3f) set.valueTextSize = 10f - set.isDrawValues = false + set?.isDrawValues = false d.addDataSet(set) return d @@ -217,7 +217,7 @@ class CombinedChartActivity : DemoBase() { set.valueTextSize = 10f set.setSingleValueTextColor(Color.WHITE) set.highlightCircleWidth = 1.5f - set.isDrawValues = true + set?.isDrawValues = true bd.addDataSet(set) return bd @@ -240,7 +240,7 @@ class CombinedChartActivity : DemoBase() { R.id.actionToggleLineValues -> { chart!!.data!!.dataSets.forEach { if (it is LineDataSet) - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } @@ -248,7 +248,7 @@ class CombinedChartActivity : DemoBase() { R.id.actionToggleBarValues -> { chart!!.data!!.dataSets.forEach { if (it is BarDataSet) - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt index 7213693765..cfa25e1e47 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CubicLineChartActivity.kt @@ -114,8 +114,8 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { set1.lineMode = LineDataSet.Mode.CUBIC_BEZIER set1.cubicIntensity = 0.2f set1.setDrawFilled(true) - set1.setDrawCircles(false) - set1.lineWidth= 1.8f + set1.isDrawCirclesEnabled = false + set1.lineWidth = 1.8f set1.circleRadius = 4f set1.setCircleColor(Color.WHITE) set1.highLightColor = Color.rgb(244, 117, 117) @@ -155,7 +155,7 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleValues -> { binding.chart1.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } @@ -170,11 +170,13 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleFilled -> { val sets = binding.chart1.data!!.dataSets - for (set in sets) { - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) + sets.forEach { set -> + set?.let { + if (set.isDrawFilledEnabled) + set?.setDrawFilled(false) + else + set?.setDrawFilled(true) + } } binding.chart1.invalidate() } @@ -184,10 +186,7 @@ class CubicLineChartActivity : DemoBase(), OnSeekBarChangeListener { for (iSet in sets) { val set = iSet as LineDataSet - if (iSet.isDrawCirclesEnabled) - set.setDrawCircles(false) - else - set.setDrawCircles(true) + set.isDrawCirclesEnabled = !iSet.isDrawCirclesEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt index 7eeccde387..b9eb132aab 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DataTools.kt @@ -190,7 +190,7 @@ class DataTools { lineDataSet01.circleRadius = 3f // draw points as solid circles - lineDataSet01.setDrawCircleHole(false) + lineDataSet01.isDrawCircleHoleEnabled = false // customize legend entry lineDataSet01.formLineWidth = 1f diff --git a/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt index 37902c5a4a..c4b0d30208 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DrawChartActivity.kt @@ -80,7 +80,7 @@ class DrawChartActivity : DemoBase(), OnChartValueSelectedListener, OnDrawListen when (item.itemId) { R.id.actionToggleValues -> { binding.chart1.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt index 5d94852990..3c82c02225 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/DynamicalAddingActivity.kt @@ -60,22 +60,23 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { val lastDataSetIndex = data.getDataSetCount() - 1 // add data only to the last val lastSet = data.getDataSetByIndex(lastDataSetIndex) + lastSet?.let { + val cycleValue = (lastSet.entryCount % 100.0).toInt() - val cycleValue = (lastSet.entryCount % 100.0).toInt() + val value = (sampleValues[cycleValue]!!.toFloat() * 50) + 50f * (lastDataSetIndex + 1) - val value = (sampleValues[cycleValue]!!.toFloat() * 50) + 50f * (lastDataSetIndex + 1) - - data.addEntry(Entry(lastSet.entryCount.toFloat(), value), lastDataSetIndex) - data.notifyDataChanged() + data.addEntry(Entry(lastSet.entryCount.toFloat(), value), lastDataSetIndex) + data.notifyDataChanged() - // let the chart know it's data has changed - chart!!.notifyDataSetChanged() + // let the chart know it's data has changed + chart!!.notifyDataSetChanged() - chart!!.setVisibleXRangeMaximum(6f) - //chart.setVisibleYRangeMaximum(15, AxisDependency.LEFT); + chart!!.setVisibleXRangeMaximum(6f) + //chart.setVisibleYRangeMaximum(15, AxisDependency.LEFT); // -// // this automatically refreshes the chart (calls invalidate()) - chart!!.moveViewTo((data.getEntryCount() - 7).toFloat(), 50f, AxisDependency.LEFT) + // this automatically refreshes the chart (calls invalidate()) + chart!!.moveViewTo((data.getEntryCount() - 7).toFloat(), 50f, AxisDependency.LEFT) + } } private fun removeLastEntry() { @@ -104,7 +105,7 @@ class DynamicalAddingActivity : DemoBase(), OnChartValueSelectedListener { chart!!.setData(LineData()) } else { val count = (data.getDataSetCount() + 1) - val amount = data.getDataSetByIndex(0).entryCount + val amount = data.getDataSetByIndex(0)?.entryCount ?: 0 val values = ArrayList() diff --git a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt index 03517e85d1..2e8713546a 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/FilledLineActivity.kt @@ -102,14 +102,14 @@ class FilledLineActivity : DemoBase() { set1.axisDependency = YAxis.AxisDependency.LEFT set1.color = Color.rgb(255, 241, 46) - set1.setDrawCircles(false) + set1.isDrawCirclesEnabled = false set1.lineWidth = 2f set1.circleRadius = 3f set1.fillAlpha = 255 set1.setDrawFilled(true) set1.fillColor = Color.WHITE set1.highLightColor = Color.rgb(244, 117, 117) - set1.setDrawCircleHole(false) + set1.isDrawCircleHoleEnabled = false set1.fillFormatter = object : IFillFormatter { override fun getFillLinePosition(dataSet: ILineDataSet?, dataProvider: LineDataProvider?): Float { // change the return value here to better understand the effect @@ -122,13 +122,13 @@ class FilledLineActivity : DemoBase() { set2 = LineDataSet(valuesArray2, "DataSet 2") set2.axisDependency = YAxis.AxisDependency.LEFT set2.color = Color.rgb(255, 241, 46) - set2.setDrawCircles(false) + set2.isDrawCirclesEnabled = false set2.lineWidth = 2f set2.circleRadius = 3f set2.fillAlpha = 255 set2.setDrawFilled(true) set2.fillColor = Color.WHITE - set2.setDrawCircleHole(false) + set2.isDrawCircleHoleEnabled = false set2.highLightColor = Color.rgb(244, 117, 117) set2.fillFormatter = object : IFillFormatter { override fun getFillLinePosition(dataSet: ILineDataSet?, dataProvider: LineDataProvider?): Float { @@ -138,7 +138,7 @@ class FilledLineActivity : DemoBase() { } } - val dataSets = ArrayList() + val dataSets = ArrayList() dataSets.add(set1) // add the data sets dataSets.add(set2) diff --git a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt index f4510b13a1..d4e487d1a4 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarChartActivity.kt @@ -154,7 +154,7 @@ class HorizontalBarChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartV R.id.actionToggleValues -> { binding.chart1.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt index 771f392319..4deccc1bfb 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/HorizontalBarNegativeChartActivity.kt @@ -161,7 +161,7 @@ class HorizontalBarNegativeChartActivity : DemoBase(), OnSeekBarChangeListener, R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt index 4df8627f8b..f4b4bfcbd9 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/InvertedLineChartActivity.kt @@ -144,7 +144,7 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } @@ -158,7 +158,7 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleFilled -> { chart!!.data!!.dataSets.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set?.setDrawFilled(!set.isDrawFilledEnabled) } chart!!.invalidate() } @@ -168,7 +168,7 @@ class InvertedLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa for (iSet in sets) { val set = iSet as LineDataSet - set.setDrawCircles(!set.isDrawCirclesEnabled) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt index b22287dd1e..8cfaef382f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartActivity.kt @@ -155,14 +155,14 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec R.id.actionToggleValues -> { binding.chart1.data?.dataSets?.forEach { set -> - set.isDrawValues = !set.isDrawValues + set?.isDrawValues = !set.isDrawValues } binding.chart1.invalidate() } R.id.actionToggleIcons -> { binding.chart1.data?.dataSets?.forEach { set -> - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons binding.chart1.invalidate() } } @@ -176,14 +176,14 @@ class LineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelec R.id.actionToggleFilled -> { binding.chart1.data?.dataSets?.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set?.setDrawFilled(!set.isDrawFilledEnabled) binding.chart1.invalidate() } } R.id.actionToggleCircles -> { binding.chart1.data?.dataSets?.map { it as LineDataSet }?.forEach { set -> - set.setDrawCircles(!set.isDrawCirclesEnabled) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt index 9816dbca5f..ea415ad888 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartDualAxisActivity.kt @@ -170,7 +170,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa set1.fillAlpha = 65 set1.fillColor = ColorTemplate.getHoloBlue() set1.highLightColor = Color.rgb(244, 117, 117) - set1.setDrawCircleHole(false) + set1.isDrawCircleHoleEnabled = false //set1.setFillFormatter(new MyFillFormatter(0f)); //set1.setDrawHorizontalHighlightIndicator(false); @@ -186,7 +186,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa set2.circleRadius = 3f set2.fillAlpha = 65 set2.fillColor = Color.BLUE - set2.setDrawCircleHole(false) + set2.isDrawCircleHoleEnabled = false set2.highLightColor = Color.rgb(244, 117, 117) //set2.setFillFormatter(new MyFillFormatter(900f)); @@ -198,7 +198,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa set3.circleRadius = 3f set3.fillAlpha = 65 set3.fillColor = ColorTemplate.colorWithAlpha(Color.YELLOW, 200) - set3.setDrawCircleHole(false) + set3.isDrawCircleHoleEnabled = false set3.highLightColor = Color.rgb(244, 117, 117) // create a data object with the data sets @@ -227,7 +227,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { set -> - set.isDrawValues = !set.isDrawValues + set?.isDrawValues = !set.isDrawValues } chart!!.invalidate() } @@ -241,7 +241,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa R.id.actionToggleFilled -> { chart!!.data!!.dataSets.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set?.setDrawFilled(!set.isDrawFilledEnabled) } chart!!.invalidate() } @@ -251,7 +251,7 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa for (iSet in sets) { val set = iSet as LineDataSet - set.setDrawCircles(!set.isDrawCirclesEnabled) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } chart!!.invalidate() } @@ -346,14 +346,13 @@ class LineChartDualAxisActivity : DemoBase(), OnSeekBarChangeListener, OnChartVa override fun onValueSelected(entry: Entry, highlight: Highlight) { Timber.i(entry.toString()) - chart!!.centerViewToAnimated( - entry.x, entry.y, chart!!.data!!.getDataSetByIndex(highlight.dataSetIndex) - .axisDependency, 500 - ) - //chart.zoomAndCenterAnimated(2.5f, 2.5f, e.getX(), e.getY(), chart.getData().getDataSetByIndex(dataSetIndex) - // .getAxisDependency(), 1000); - //chart.zoomAndCenterAnimated(1.8f, 1.8f, e.getX(), e.getY(), chart.getData().getDataSetByIndex(dataSetIndex) - // .getAxisDependency(), 1000); + chart!!.data!!.getDataSetByIndex(highlight.dataSetIndex)?.let { + chart!!.centerViewToAnimated(entry.x, entry.y, it.axisDependency, 500) + //chart.zoomAndCenterAnimated(2.5f, 2.5f, e.getX(), e.getY(), chart.getData().getDataSetByIndex(dataSetIndex) + // .getAxisDependency(), 1000); + //chart.zoomAndCenterAnimated(1.8f, 1.8f, e.getX(), e.getY(), chart.getData().getDataSetByIndex(dataSetIndex) + // .getAxisDependency(), 1000); + } } override fun onNothingSelected() = Unit diff --git a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt index 926dc3bcd1..e0bf17a3e8 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/LineChartTimeActivity.kt @@ -133,12 +133,12 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { set1.color = ColorTemplate.getHoloBlue() set1.setSingleValueTextColor(ColorTemplate.getHoloBlue()) set1.lineWidth = 1.5f - set1.setDrawCircles(false) + set1.isDrawCirclesEnabled = false set1.isDrawValues = false set1.fillAlpha = 65 set1.fillColor = ColorTemplate.getHoloBlue() set1.highLightColor = Color.rgb(244, 117, 117) - set1.setDrawCircleHole(false) + set1.isDrawCircleHoleEnabled = false // create a data object with the data sets val data = LineData(set1) @@ -165,7 +165,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { set -> - set.isDrawValues = !set.isDrawValues + set?.isDrawValues = !set.isDrawValues } chart!!.invalidate() } @@ -179,10 +179,12 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { R.id.actionToggleFilled -> { chart!!.data!!.dataSets.forEach { set -> - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) + set?.let { + if (set.isDrawFilledEnabled) + set.setDrawFilled(false) + else + set.setDrawFilled(true) + } } chart!!.invalidate() } @@ -192,10 +194,7 @@ class LineChartTimeActivity : DemoBase(), OnSeekBarChangeListener { for (iSet in sets) { val set = iSet as LineDataSet - if (set.isDrawCirclesEnabled) - set.setDrawCircles(false) - else - set.setDrawCircles(true) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt index 5ce0020023..062fd26504 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt @@ -108,7 +108,7 @@ class ListViewMultiChartActivity : DemoBase() { d2.setCircleColor(ColorTemplate.VORDIPLOM_COLORS[0]) d2.isDrawValues = false - val sets = ArrayList() + val sets = ArrayList() sets.add(d1) sets.add(d2) diff --git a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt index 700e955a6a..911cd9b688 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/MultiLineChartActivity.kt @@ -132,7 +132,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu R.id.actionToggleValues -> { binding.chart1.data!!.dataSets.forEach { set -> - set.isDrawValues = !set.isDrawValues + set?.isDrawValues = !set.isDrawValues } binding.chart1.invalidate() } @@ -158,10 +158,12 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu R.id.actionToggleFilled -> { binding.chart1.data!!.dataSets.forEach { set -> - if (set.isDrawFilledEnabled) - set.setDrawFilled(false) - else - set.setDrawFilled(true) + set?.let { + if (set.isDrawFilledEnabled) + set.setDrawFilled(false) + else + set.setDrawFilled(true) + } } binding.chart1.invalidate() } @@ -171,10 +173,7 @@ class MultiLineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartGestu for (iSet in sets) { val set = iSet as LineDataSet - if (set.isDrawCirclesEnabled) - set.setDrawCircles(false) - else - set.setDrawCircles(true) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } binding.chart1.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt index 0370770ac0..0ff8d20d0f 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PerformanceLineChart.kt @@ -71,7 +71,7 @@ class PerformanceLineChart : DemoBase(), OnSeekBarChangeListener { set1.color = Color.BLACK set1.lineWidth = 0.5f set1.isDrawValues = false - set1.setDrawCircles(false) + set1.isDrawCirclesEnabled = false set1.lineMode = LineDataSet.Mode.LINEAR set1.setDrawFilled(false) diff --git a/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt index 4be51cbed1..2be1e53f18 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PieChartActivity.kt @@ -178,14 +178,14 @@ class PieChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSelect R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { for (set in chart!!.data!!.getDataSets()) - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt index 6ae420b861..9ab30a2199 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PieChartRoundedActivity.kt @@ -183,14 +183,14 @@ class PieChartRoundedActivity : DemoBase(), OnSeekBarChangeListener, OnChartValu R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { for (set in chart!!.data!!.getDataSets()) - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt index 2951d09461..ea14a55a85 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/PiePolylineChartActivity.kt @@ -172,7 +172,7 @@ class PiePolylineChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartVal R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt index bbf4f08d4f..eccadb9081 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RadarChartActivity.kt @@ -157,7 +157,7 @@ class RadarChartActivity : DemoBase() { R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() @@ -177,7 +177,7 @@ class RadarChartActivity : DemoBase() { R.id.actionToggleFilled -> { chart!!.data!!.dataSets.forEach { set -> - set.setDrawFilled(!set.isDrawFilledEnabled) + set?.setDrawFilled(!set.isDrawFilledEnabled) } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt index 95ac35894f..b3a519a993 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/RealtimeLineChartActivity.kt @@ -128,7 +128,7 @@ class RealtimeLineChartActivity : DemoBase(), OnChartValueSelectedListener { set.highLightColor = Color.rgb(244, 117, 117) set.setSingleValueTextColor(Color.WHITE) set.valueTextSize = 9f - set.isDrawValues = false + set?.isDrawValues = false return set } diff --git a/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt index 54e750ec01..3cfa0b3e88 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ScatterChartActivity.kt @@ -151,7 +151,7 @@ class ScatterChartActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSe R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { set -> - set.isDrawValues = !set.isDrawValues + set?.isDrawValues = !set.isDrawValues } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt index 7cc71cacf6..1c51ba1c56 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ScrollViewActivity.kt @@ -54,7 +54,7 @@ class ScrollViewActivity : DemoBase() { val set = BarDataSet(values, "Data Set") set.setColors(*ColorTemplate.VORDIPLOM_COLORS) - set.isDrawValues = false + set?.isDrawValues = false val data = BarData(set) diff --git a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt index 1bf6f7392e..0abda2646b 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/SpecificPositionsLineChartActivity.kt @@ -139,7 +139,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, when (item.itemId) { R.id.actionToggleValues -> { mChart!!.data?.dataSets?.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } mChart!!.invalidate() } @@ -154,7 +154,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, R.id.actionToggleFilled -> { mChart!!.data?.dataSets?.forEach { val set = it as LineDataSet - set.setDrawFilled(!set.isDrawFilledEnabled) + set?.setDrawFilled(!set.isDrawFilledEnabled) } mChart!!.invalidate() } @@ -162,7 +162,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, R.id.actionToggleCircles -> { mChart!!.data?.dataSets?.forEach { val set = it as LineDataSet - set.setDrawCircles(!set.isDrawCirclesEnabled) + set.isDrawCirclesEnabled = !set.isDrawCirclesEnabled } mChart!!.invalidate() } @@ -266,7 +266,7 @@ class SpecificPositionsLineChartActivity : DemoBase(), OnSeekBarChangeListener, set11.setCircleColor(Color.BLACK) set11.lineWidth = 1f set11.circleRadius = 3f - set11.setDrawCircleHole(false) + set11.isDrawCircleHoleEnabled = false set11.valueTextSize = 9f set11.setDrawFilled(true) set11.formLineWidth = 1f diff --git a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt index 09635faf40..7607862b62 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivity.kt @@ -161,14 +161,14 @@ class StackedBarActivity : DemoBase(), OnSeekBarChangeListener, OnChartValueSele R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { chart!!.data!!.dataSets.forEach { set -> - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons } chart!!.invalidate() } diff --git a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt index 5e10a6b904..baf8dd1a00 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/StackedBarActivityNegative.kt @@ -100,7 +100,7 @@ class StackedBarActivityNegative : DemoBase(), OnChartValueSelectedListener { values.add(BarEntry(105f, floatArrayOf(-1f, 2f))) val set = BarDataSet(values, "Age Distribution") - set.isDrawIcons = false + set?.isDrawIcons = false set.valueFormatter = CustomFormatter() set.valueTextSize = 7f set.axisDependency = YAxis.AxisDependency.RIGHT @@ -129,14 +129,14 @@ class StackedBarActivityNegative : DemoBase(), OnChartValueSelectedListener { R.id.actionToggleValues -> { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } chart!!.invalidate() } R.id.actionToggleIcons -> { chart!!.data!!.dataSets.forEach { set -> - set.isDrawIcons = !set.isDrawIcons + set?.isDrawIcons = !set.isDrawIcons } chart!!.invalidate() diff --git a/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt index 9bc1ef6c38..d1484ea074 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/compose/HorizontalBarComposeActivity.kt @@ -378,7 +378,7 @@ class HorizontalBarComposeActivity : DemoBaseCompose() { private fun toggleValues() { chart?.let { chart!!.data!!.dataSets.forEach { - it.isDrawValues = !it.isDrawValues + it?.isDrawValues = !it.isDrawValues } it.invalidate() } 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 566612bc6d..8c8b863129 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/fragments/SimpleFragment.kt @@ -111,15 +111,15 @@ abstract class SimpleFragment : Fragment() { } protected fun generateLineData(): LineData { - val sets = ArrayList() + val sets = ArrayList() val ds1 = LineDataSet(FileUtils.loadEntriesFromAssets(requireContext().assets, "sine.txt"), "Sine function") val ds2 = LineDataSet(FileUtils.loadEntriesFromAssets(requireContext().assets, "cosine.txt"), "Cosine function") ds1.lineWidth = 2f ds2.lineWidth = 2f - ds1.setDrawCircles(false) - ds2.setDrawCircles(false) + ds1.isDrawCirclesEnabled = false + ds2.isDrawCirclesEnabled = false ds1.color = ColorTemplate.VORDIPLOM_COLORS[0] ds2.color = ColorTemplate.VORDIPLOM_COLORS[1] @@ -135,7 +135,7 @@ abstract class SimpleFragment : Fragment() { protected val complexity: LineData get() { - val sets = ArrayList() + val sets = ArrayList() val ds1 = LineDataSet(FileUtils.loadEntriesFromAssets(requireContext().assets, "n.txt"), "O(n)") val ds2 = LineDataSet(FileUtils.loadEntriesFromAssets(requireContext().assets, "nlogn.txt"), "O(nlogn)")