Skip to content

Commit 696f945

Browse files
authored
Merge pull request #170 from AppDevNext/KotlinConversionLineChart
Kotlin conversion LineChart
2 parents e42bf09 + 7a9d178 commit 696f945

File tree

8 files changed

+88
-107
lines changed

8 files changed

+88
-107
lines changed

MPChartLib/src/main/java/com/github/mikephil/charting/charts/Chart.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
import java.io.OutputStream;
5454
import java.util.ArrayList;
5555

56+
import androidx.annotation.NonNull;
57+
5658
/**
5759
* Baseclass of all Chart-Views.
5860
*
@@ -1311,6 +1313,7 @@ public void setDrawMarkers(boolean enabled) {
13111313
/**
13121314
* Returns the ChartData object that has been set for the chart.
13131315
*/
1316+
@NonNull
13141317
public T getData() {
13151318
return mData;
13161319
}

MPChartLib/src/main/java/com/github/mikephil/charting/charts/LineChart.java

Lines changed: 0 additions & 77 deletions
This file was deleted.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.github.mikephil.charting.charts
2+
3+
import android.content.Context
4+
import android.util.AttributeSet
5+
import com.github.mikephil.charting.data.LineData
6+
import com.github.mikephil.charting.interfaces.dataprovider.LineDataProvider
7+
import com.github.mikephil.charting.renderer.LineChartRenderer
8+
import java.util.Locale
9+
10+
class LineChart : BarLineChartBase<LineData?>, LineDataProvider {
11+
12+
constructor(context: Context?) : super(context)
13+
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
14+
constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle)
15+
16+
override fun init() {
17+
super.init()
18+
mRenderer = LineChartRenderer(this, mAnimator, mViewPortHandler)
19+
}
20+
21+
override val lineData: LineData
22+
get() {
23+
mData?.let {
24+
return it
25+
} ?: run {
26+
return LineData()
27+
}
28+
}
29+
30+
public override fun onDetachedFromWindow() {
31+
// releases the bitmap in the renderer to avoid oom error
32+
if (mRenderer != null && mRenderer is LineChartRenderer) {
33+
(mRenderer as LineChartRenderer).releaseBitmap()
34+
}
35+
super.onDetachedFromWindow()
36+
}
37+
38+
override fun getAccessibilityDescription(): String {
39+
val lineData = lineData
40+
val numberOfPoints = lineData.entryCount
41+
42+
// Min and max values...
43+
val yAxisValueFormatter = axisLeft.valueFormatter
44+
val minVal = yAxisValueFormatter.getFormattedValue(lineData.yMin, null)
45+
val maxVal = yAxisValueFormatter.getFormattedValue(lineData.yMax, null)
46+
47+
// Data range...
48+
val xAxisValueFormatter = xAxis.valueFormatter
49+
val minRange = xAxisValueFormatter.getFormattedValue(lineData.xMin, null)
50+
val maxRange = xAxisValueFormatter.getFormattedValue(lineData.xMax, null)
51+
val entries = if (numberOfPoints == 1) "entry" else "entries"
52+
return String.format(
53+
Locale.getDefault(), "The line chart has %d %s. " +
54+
"The minimum value is %s and maximum value is %s." +
55+
"Data ranges from %s to %s.",
56+
numberOfPoints, entries, minVal, maxVal, minRange, maxRange
57+
)
58+
}
59+
}

MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/dataprovider/BarLineScatterCandleBubbleDataProvider.java

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.github.mikephil.charting.interfaces.dataprovider
2+
3+
import com.github.mikephil.charting.components.YAxis.AxisDependency
4+
import com.github.mikephil.charting.data.BarLineScatterCandleBubbleData
5+
import com.github.mikephil.charting.utils.Transformer
6+
7+
interface BarLineScatterCandleBubbleDataProvider : ChartInterface {
8+
fun getTransformer(axis: AxisDependency?): Transformer?
9+
fun isInverted(axis: AxisDependency?): Boolean
10+
val lowestVisibleX: Float
11+
val highestVisibleX: Float
12+
override fun getData(): BarLineScatterCandleBubbleData<*>
13+
}

MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/dataprovider/LineDataProvider.java

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.github.mikephil.charting.interfaces.dataprovider
2+
3+
import com.github.mikephil.charting.components.YAxis
4+
import com.github.mikephil.charting.components.YAxis.AxisDependency
5+
import com.github.mikephil.charting.data.LineData
6+
7+
interface LineDataProvider : BarLineScatterCandleBubbleDataProvider {
8+
val lineData: LineData
9+
fun getAxis(dependency: AxisDependency): YAxis?
10+
}

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/LineChartRenderer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -629,12 +629,12 @@ public void drawExtras(Canvas c) {
629629
/**
630630
* cache for the circle bitmaps of all datasets
631631
*/
632-
private HashMap<IDataSet, DataSetImageCache> mImageCaches = new HashMap<>();
632+
private final HashMap<IDataSet, DataSetImageCache> mImageCaches = new HashMap<>();
633633

634634
/**
635635
* buffer for drawing the circles
636636
*/
637-
private float[] mCirclesBuffer = new float[2];
637+
private final float[] mCirclesBuffer = new float[2];
638638

639639
protected void drawCircles(Canvas c) {
640640

@@ -782,7 +782,7 @@ public void releaseBitmap() {
782782

783783
private class DataSetImageCache {
784784

785-
private Path mCirclePathBuffer = new Path();
785+
private final Path mCirclePathBuffer = new Path();
786786

787787
private Bitmap[] circleBitmaps;
788788

0 commit comments

Comments
 (0)