diff --git a/chartLib/src/main/kotlin/info/appdev/charting/charts/RadarChart.kt b/chartLib/src/main/kotlin/info/appdev/charting/charts/RadarChart.kt index b95736816..2ff26e4ac 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/charts/RadarChart.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/charts/RadarChart.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.util.AttributeSet +import androidx.annotation.ColorInt import info.appdev.charting.components.YAxis import info.appdev.charting.components.YAxis.AxisDependency import info.appdev.charting.data.RadarData @@ -39,6 +40,7 @@ open class RadarChart : PieRadarChartBase { /** * color for the main web lines */ + @ColorInt var webColor: Int = Color.rgb(122, 122, 122) /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/AxisBase.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/AxisBase.kt index b331c3f75..7eaa5d652 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/AxisBase.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/AxisBase.kt @@ -3,6 +3,7 @@ package info.appdev.charting.components import android.graphics.Color import android.graphics.DashPathEffect import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.formatter.DefaultAxisValueFormatter import info.appdev.charting.formatter.IAxisValueFormatter import info.appdev.charting.utils.convertDpToPixel @@ -22,6 +23,7 @@ abstract class AxisBase : ComponentBase() { * The color of the grid lines for this axis (the horizontal lines * coming from each label). */ + @ColorInt var gridColor: Int = Color.GRAY private var mGridLineWidth = 1f @@ -29,9 +31,7 @@ abstract class AxisBase : ComponentBase() { /** * Returns the color of the axis line (line alongside the axis). */ - /** - * Sets the color of the border surrounding the chart. - */ + @ColorInt var axisLineColor: Int = Color.GRAY private var mAxisLineWidth = 1f diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/ComponentBase.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/ComponentBase.kt index 5f80c3079..c83b5e926 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/ComponentBase.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/ComponentBase.kt @@ -2,6 +2,7 @@ package info.appdev.charting.components import android.graphics.Color import android.graphics.Typeface +import androidx.annotation.ColorInt import info.appdev.charting.utils.convertDpToPixel /** @@ -37,6 +38,7 @@ abstract class ComponentBase { /** * the text color to use for the labels */ + @ColorInt open var textColor: Int = Color.BLACK /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/LegendEntry.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/LegendEntry.kt index a7d10135d..1f6401ded 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/LegendEntry.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/LegendEntry.kt @@ -1,6 +1,7 @@ package info.appdev.charting.components import android.graphics.DashPathEffect +import androidx.annotation.ColorInt import info.appdev.charting.components.Legend.LegendForm import info.appdev.charting.utils.ColorTemplate @@ -23,7 +24,7 @@ class LegendEntry { formSize: Float, formLineWidth: Float, formLineDashEffect: DashPathEffect?, - formColor: Int + @ColorInt formColor: Int ) { this.label = label this.form = form @@ -72,5 +73,6 @@ class LegendEntry { /** * The color for drawing the form */ + @ColorInt var formColor: Int = ColorTemplate.COLOR_NONE } \ No newline at end of file diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/LimitLine.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/LimitLine.kt index aa149ed11..1a24589b0 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/LimitLine.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/LimitLine.kt @@ -3,6 +3,7 @@ package info.appdev.charting.components import android.graphics.Color import android.graphics.DashPathEffect import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.utils.convertDpToPixel /** @@ -18,6 +19,7 @@ class LimitLine : ComponentBase { private var mLineWidth = 2f /** the color of the limit line */ + @ColorInt var lineColor: Int = Color.rgb(237, 91, 91) /** the style of the label text */ diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/LimitRange.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/LimitRange.kt index 04bcc8ec5..e69f15c4e 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/LimitRange.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/LimitRange.kt @@ -3,6 +3,7 @@ package info.appdev.charting.components import android.graphics.Color import android.graphics.DashPathEffect import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.components.LimitLine.LimitLabelPosition import info.appdev.charting.utils.convertDpToPixel @@ -40,11 +41,13 @@ class LimitRange : ComponentBase { /** * the color of the limit line */ + @ColorInt var lineColor: Int = Color.rgb(237, 91, 91) /** * the color of the Range */ + @ColorInt var rangeColor: Int = Color.rgb(128, 128, 128) /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/components/YAxis.kt b/chartLib/src/main/kotlin/info/appdev/charting/components/YAxis.kt index bfde382cd..29938b74a 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/components/YAxis.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/components/YAxis.kt @@ -2,6 +2,7 @@ package info.appdev.charting.components import android.graphics.Color import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.utils.calcTextHeight import info.appdev.charting.utils.calcTextWidth import info.appdev.charting.utils.convertDpToPixel @@ -43,6 +44,7 @@ open class YAxis : AxisBase { /** * Color of the zero line */ + @ColorInt var zeroLineColor: Int = Color.GRAY /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/BarDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/BarDataSet.kt index 7d7505e19..0dc1a85ff 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/BarDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/BarDataSet.kt @@ -1,6 +1,7 @@ package info.appdev.charting.data import android.graphics.Color +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.IBarDataSet import info.appdev.charting.utils.Fill @@ -14,10 +15,12 @@ open class BarDataSet(yVals: MutableList, label: String) : BarLineScat /** * the color used for drawing the bar shadows */ + @ColorInt private var mBarShadowColor = Color.rgb(215, 215, 215) private var mBarBorderWidth = 0.0f + @ColorInt private var mBarBorderColor = Color.BLACK /** @@ -89,7 +92,7 @@ open class BarDataSet(yVals: MutableList, label: String) : BarLineScat /** * Sets the start and end color for gradient color, ONLY color that should be used for this DataSet. */ - fun setGradientColor(startColor: Int, endColor: Int) { + fun setGradientColor(@ColorInt startColor: Int, @ColorInt endColor: Int) { gradients.clear() gradients.add(Fill(startColor, endColor)) } diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/BarLineScatterCandleBubbleDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/BarLineScatterCandleBubbleDataSet.kt index 8e7ee1f1d..4b5a11391 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/BarLineScatterCandleBubbleDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/BarLineScatterCandleBubbleDataSet.kt @@ -1,6 +1,7 @@ package info.appdev.charting.data import android.graphics.Color +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.IBarLineScatterCandleBubbleDataSet /** @@ -11,6 +12,7 @@ abstract class BarLineScatterCandleBubbleDataSet(yVals: MutableList) { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt index aaa9e934b..fb601e939 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/BaseDataSet.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.Color import android.graphics.DashPathEffect import android.graphics.Typeface +import androidx.annotation.ColorInt import androidx.core.content.ContextCompat import info.appdev.charting.components.Legend.LegendForm import info.appdev.charting.components.YAxis.AxisDependency @@ -22,11 +23,13 @@ abstract class BaseDataSet() : IDataSet { /** * List representing all colors that are used for this DataSet */ + @ColorInt protected var mColors: MutableList /** * List representing all colors that are used for drawing the actual values for this DataSet */ + @ColorInt protected var mValueColors: MutableList /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/CandleDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/CandleDataSet.kt index e41c653b5..47d4b821e 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/CandleDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/CandleDataSet.kt @@ -1,6 +1,7 @@ package info.appdev.charting.data import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.ICandleDataSet import info.appdev.charting.utils.ColorTemplate import info.appdev.charting.utils.convertDpToPixel @@ -48,21 +49,25 @@ open class CandleDataSet(yVals: MutableList?, label: String = "") : /** * color for open == close */ + @ColorInt protected var mNeutralColor: Int = ColorTemplate.COLOR_SKIP /** * color for open < close */ + @ColorInt protected var mIncreasingColor: Int = ColorTemplate.COLOR_SKIP /** * color for open > close */ + @ColorInt protected var mDecreasingColor: Int = ColorTemplate.COLOR_SKIP /** * shadow line color, set -1 for backward compatibility and uses default color */ + @ColorInt protected var mShadowColor: Int = ColorTemplate.COLOR_SKIP override fun copy(): DataSet { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/LineDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/LineDataSet.kt index cf952d273..9627f2184 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/LineDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/LineDataSet.kt @@ -3,6 +3,7 @@ package info.appdev.charting.data import android.content.Context import android.graphics.Color import android.graphics.DashPathEffect +import androidx.annotation.ColorInt import androidx.core.content.ContextCompat import info.appdev.charting.formatter.DefaultFillFormatter import info.appdev.charting.formatter.IFillFormatter @@ -30,11 +31,13 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad /** * List representing all colors that are used for the circles */ + @ColorInt var circleColors: MutableList = mutableListOf() /** * the color of the inner circles */ + @ColorInt private var mCircleHoleColor = Color.WHITE /** @@ -247,7 +250,7 @@ open class LineDataSet(yVals: MutableList?, label: String = "") : LineRad * this method. Internally, the colors are resolved using * getResources().getColor(...) */ - fun setCircleColors(colors: IntArray, context: Context) { + fun setCircleColors(@ColorInt colors: IntArray, context: Context) { val clrs = this.circleColors clrs.clear() diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/LineRadarDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/LineRadarDataSet.kt index b7c8c61ad..5b39cff2d 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/LineRadarDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/LineRadarDataSet.kt @@ -2,6 +2,7 @@ package info.appdev.charting.data import android.graphics.Color import android.graphics.drawable.Drawable +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.ILineRadarDataSet import info.appdev.charting.utils.convertDpToPixel @@ -13,6 +14,7 @@ abstract class LineRadarDataSet(yVals: MutableList?, label: String /** * the color that is used for filling the line surface */ + @ColorInt private var mFillColor = Color.rgb(140, 234, 255) /** diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/PieDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/PieDataSet.kt index bc33c6a30..46cb68f28 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/PieDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/PieDataSet.kt @@ -1,5 +1,6 @@ package info.appdev.charting.data +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.IPieDataSet import info.appdev.charting.utils.convertDpToPixel @@ -24,6 +25,7 @@ open class PieDataSet(yVals: MutableList?, label: String) : DataSet { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/RadarDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/RadarDataSet.kt index a195168ad..0b0893046 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/RadarDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/RadarDataSet.kt @@ -1,6 +1,7 @@ package info.appdev.charting.data import android.graphics.Color +import androidx.annotation.ColorInt import info.appdev.charting.interfaces.datasets.IRadarDataSet import info.appdev.charting.utils.ColorTemplate @@ -8,10 +9,12 @@ open class RadarDataSet(yVals: MutableList?, label: String = "") : L /** flag indicating whether highlight circle should be drawn or not */ protected var mDrawHighlightCircleEnabled: Boolean = false + @ColorInt protected var mHighlightCircleFillColor: Int = Color.WHITE /** The stroke color for highlight circle. * If Utils.COLOR_NONE, the color of the dataset is taken. */ + @ColorInt protected var mHighlightCircleStrokeColor: Int = ColorTemplate.COLOR_NONE protected var mHighlightCircleStrokeAlpha: Int = (0.3 * 255).toInt() diff --git a/chartLib/src/main/kotlin/info/appdev/charting/data/ScatterDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/data/ScatterDataSet.kt index 9d9d025a6..8ab7fa3b0 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/data/ScatterDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/data/ScatterDataSet.kt @@ -1,5 +1,6 @@ package info.appdev.charting.data +import androidx.annotation.ColorInt import info.appdev.charting.charts.ScatterChart.ScatterShape import info.appdev.charting.interfaces.datasets.IScatterDataSet import info.appdev.charting.renderer.scatter.ChevronDownShapeRenderer @@ -34,6 +35,7 @@ open class ScatterDataSet(yVals: MutableList?, label: String = "") : Line * Setting to `ColorTemplate.COLOR_NONE` will behave as transparent. * - default: ColorTemplate.COLOR_NONE */ + @ColorInt private var mScatterShapeHoleColor = ColorTemplate.COLOR_NONE override fun copy(): DataSet { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarDataSet.kt index a29dc8da7..0940bc245 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarDataSet.kt @@ -1,5 +1,6 @@ package info.appdev.charting.interfaces.datasets +import androidx.annotation.ColorInt import info.appdev.charting.data.BarEntry import info.appdev.charting.utils.Fill diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.kt index c54774425..5246d8c10 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.kt @@ -1,5 +1,6 @@ package info.appdev.charting.interfaces.datasets +import androidx.annotation.ColorInt import info.appdev.charting.data.Entry interface IBarLineScatterCandleBubbleDataSet : IDataSet { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/ICandleDataSet.kt b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/ICandleDataSet.kt index c4cf62b03..366c78344 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/ICandleDataSet.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/interfaces/datasets/ICandleDataSet.kt @@ -1,6 +1,7 @@ package info.appdev.charting.interfaces.datasets import android.graphics.Paint +import androidx.annotation.ColorInt import info.appdev.charting.data.CandleEntry interface ICandleDataSet : ILineScatterCandleRadarDataSet { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/LineRadarRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/LineRadarRenderer.kt index e44d43aa4..802a632dc 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/LineRadarRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/LineRadarRenderer.kt @@ -4,6 +4,7 @@ import android.graphics.Canvas import android.graphics.Paint import android.graphics.Path import android.graphics.drawable.Drawable +import androidx.annotation.ColorInt import androidx.core.graphics.withClip import info.appdev.charting.animation.ChartAnimator import info.appdev.charting.utils.ViewPortHandler @@ -45,7 +46,7 @@ abstract class LineRadarRenderer( * @param fillColor * @param fillAlpha */ - protected fun drawFilledPath(canvas: Canvas, filledPath: Path, fillColor: Int, fillAlpha: Int) { + protected fun drawFilledPath(canvas: Canvas, filledPath: Path, @ColorInt fillColor: Int, fillAlpha: Int) { val color = (fillAlpha shl 24) or (fillColor and 0xffffff) if (clipPathSupported()) { diff --git a/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt b/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt index 0a1b5c2c3..6304b084d 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt @@ -4,6 +4,7 @@ import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Path +import androidx.annotation.ColorInt import androidx.core.graphics.withSave import info.appdev.charting.animation.ChartAnimator import info.appdev.charting.charts.RadarChart @@ -366,8 +367,8 @@ open class RadarChartRenderer( point: PointF, innerRadius: Float, outerRadius: Float, - fillColor: Int, - strokeColor: Int, + @ColorInt fillColor: Int, + @ColorInt strokeColor: Int, strokeWidth: Float ) { var innerRadiusLocal = innerRadius diff --git a/chartLib/src/main/kotlin/info/appdev/charting/utils/Fill.kt b/chartLib/src/main/kotlin/info/appdev/charting/utils/Fill.kt index eb8a124cc..b58d451cf 100644 --- a/chartLib/src/main/kotlin/info/appdev/charting/utils/Fill.kt +++ b/chartLib/src/main/kotlin/info/appdev/charting/utils/Fill.kt @@ -1,5 +1,7 @@ package info.appdev.charting.utils +import android.R.attr.endColor +import android.R.attr.startColor import android.graphics.Canvas import android.graphics.LinearGradient import android.graphics.Paint @@ -7,6 +9,7 @@ import android.graphics.Path import android.graphics.RectF import android.graphics.Shader import android.graphics.drawable.Drawable +import androidx.annotation.ColorInt import kotlin.math.floor open class Fill { @@ -26,8 +29,10 @@ open class Fill { /** * the color that is used for filling */ + @ColorInt private var mColor: Int? = null + @ColorInt private var mFinalColor: Int? = null /** @@ -44,7 +49,7 @@ open class Fill { */ private var mAlpha = 255 - constructor(startColor: Int, endColor: Int) { + constructor(@ColorInt startColor: Int, @ColorInt endColor: Int) { this.type = Type.LINEAR_GRADIENT this.gradientColors = intArrayOf(startColor, endColor) } @@ -56,7 +61,7 @@ open class Fill { calculateFinalColor() } - fun setGradientColors(startColor: Int, endColor: Int) { + fun setGradientColors(@ColorInt startColor: Int, @ColorInt endColor: Int) { this.gradientColors = intArrayOf(startColor, endColor) }