From 0abab0c85bc80933543c2d400a65550916282378 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Sat, 17 Jan 2026 18:55:05 +0100 Subject: [PATCH 1/4] Cosmetic Cosmetic --- .../mikephil/charting/highlight/Highlight.kt | 14 +++++++------- .../charting/listener/BarLineChartTouchListener.kt | 4 ++-- .../appdev/chartexample/CombinedChartActivity.kt | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/highlight/Highlight.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/highlight/Highlight.kt index 57ce6b21d..959de0910 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/highlight/Highlight.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/highlight/Highlight.kt @@ -108,12 +108,12 @@ class Highlight : Serializable { * selected */ constructor(x: Float, y: Float, xPx: Float, yPx: Float, dataSetIndex: Int, stackIndex: Int, axis: AxisDependency?) : this( - x, - y, - xPx, - yPx, - dataSetIndex, - axis + x = x, + y = y, + xPx = xPx, + yPx = yPx, + dataSetIndex = dataSetIndex, + axis = axis ) { this.stackIndex = stackIndex } @@ -144,6 +144,6 @@ class Highlight : Serializable { } override fun toString(): String { - return "Highlight, x:$x y:$y dataSetIndex:$dataSetIndex stackIndex (only stacked bar entry): $stackIndex" + return "Highlight, x:$x y:$y dataSetIndex:$dataSetIndex stackIndex:$stackIndex dataIndex:$dataIndex (only stacked bar entry)" } } diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/listener/BarLineChartTouchListener.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/listener/BarLineChartTouchListener.kt index 92716c991..8d0a3ac01 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/listener/BarLineChartTouchListener.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/listener/BarLineChartTouchListener.kt @@ -533,8 +533,8 @@ class BarLineChartTouchListener( return false } - val h = chart!!.getHighlightByTouchPoint(e.x, e.y) - performHighlight(h, e) + val highlight = chart!!.getHighlightByTouchPoint(e.x, e.y) + performHighlight(highlight, e) return super.onSingleTapUp(e) } diff --git a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt index a1f01c375..bac60a94c 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/CombinedChartActivity.kt @@ -48,6 +48,7 @@ class CombinedChartActivity : DemoBase() { chart!!.setDrawGridBackground(false) chart!!.setDrawBarShadow(false) chart!!.isHighlightFullBarEnabled = false + chart!!.isLogEnabled = true // draw bars behind lines chart!!.setDrawOrder( From 1ffd4c77c7678126b78753c8c1cf9485f3adbbdf Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Sun, 18 Jan 2026 11:18:31 +0100 Subject: [PATCH 2/4] Cosmetic --- .../info/appdev/chartexample/StartTest.kt | 22 +++++++++---------- .../ListViewMultiChartActivity.kt | 10 ++++----- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt b/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt index 52d8ef5eb..2e427475e 100644 --- a/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt +++ b/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt @@ -67,8 +67,8 @@ class StartTest { var optionMenu = "" // iterate samples - only items with classes (not section headers) MainActivity.menuItems.forEachIndexed { index, contentItem -> - contentItem.clazz?.let { - Timber.d("Intended ${index}-${it.simpleName}: ${contentItem.name}") + contentItem.clazz?.let { contentClass -> + Timber.d("Intended ${index}-${contentClass.simpleName}: ${contentItem.name}") try { // Use description to uniquely identify items since names can be duplicated @@ -100,17 +100,17 @@ class StartTest { composeTestRule.waitForIdle() Thread.sleep(300) // Increased delay for activity transition - Intents.intended(hasComponent(it.name)) + Intents.intended(hasComponent(contentClass.name)) onView(ViewMatchers.isRoot()) .perform(captureToBitmap { bitmap: Bitmap -> bitmap.writeToTestStorage( - "${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-${contentItem.name}-1SampleClick" + "${javaClass.simpleName}_${nameRule.methodName}-${index}-${contentClass.simpleName}-${contentItem.name}-1SampleClick" .replace(" ", "") ) }) // Test option menus based on activity type - if (DemoBase::class.java.isAssignableFrom(it)) { + if (DemoBase::class.java.isAssignableFrom(contentClass)) { // Test traditional ActionBar menu for DemoBase activities optionMenu = "" optionMenus.filter { plain -> plain.isNotEmpty() && Character.isDigit(plain.first()) }.forEach { filteredTitle -> @@ -119,13 +119,13 @@ class StartTest { openActionBarOverflowOrOptionsMenu(getInstrumentation().targetContext) Timber.d("screenshot optionMenu=$optionMenu") screenshotOfOptionMenu( - "${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-${contentItem.name}", + "${javaClass.simpleName}_${nameRule.methodName}-${index}-${contentClass.simpleName}-${contentItem.name}", filteredTitle ) } - } else if (DemoBaseCompose::class.java.isAssignableFrom(it)) { + } else if (DemoBaseCompose::class.java.isAssignableFrom(contentClass)) { // Test Compose dropdown menu for DemoBaseCompose activities - Timber.d("Testing Compose menu for: ${it.simpleName}") + Timber.d("Testing Compose menu for: ${contentClass.simpleName}") optionMenu = "" try { @@ -165,7 +165,7 @@ class StartTest { onView(ViewMatchers.isRoot()) .perform(captureToBitmap { bitmap: Bitmap -> bitmap.writeToTestStorage( - "${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-${contentItem.name}-${menuTitle}" + "${javaClass.simpleName}_${nameRule.methodName}-${index}-${contentClass.simpleName}-${contentItem.name}-${menuTitle}" .replace(" ", "") ) }) @@ -203,7 +203,7 @@ class StartTest { Timber.e("Error testing Compose menu: ${e.message}", e) } } else { - Timber.d("Unknown activity type: ${it.simpleName}") + Timber.d("Unknown activity type: ${contentClass.simpleName}") } //Thread.sleep(100) @@ -217,7 +217,7 @@ class StartTest { onView(ViewMatchers.isRoot()) .perform(captureToBitmap { bitmap: Bitmap -> bitmap.writeToTestStorage( - "${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-Error" + "${javaClass.simpleName}_${nameRule.methodName}-${index}-${contentClass.simpleName}-Error" .replace(" ", "") ) }) diff --git a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt index 5733c6c9c..602471261 100644 --- a/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt +++ b/app/src/main/kotlin/info/appdev/chartexample/ListViewMultiChartActivity.kt @@ -48,7 +48,7 @@ class ListViewMultiChartActivity : DemoBase() { list.add(LineChartItem(generateDataLine(i + 1), applicationContext)) } else if (i % 3 == 1) { list.add(BarChartItem(generateDataBar(i + 1), applicationContext)) - } else if (i % 3 == 2) { + } else { list.add(PieChartItem(generateDataPie(), applicationContext)) } } @@ -58,7 +58,7 @@ class ListViewMultiChartActivity : DemoBase() { } /** adapter that supports 3 different item types */ - private class ChartDataAdapter(context: Context, objects: MutableList) : ArrayAdapter(context, 0, objects) { + private class ChartDataAdapter(context: Context, chartItems: MutableList) : ArrayAdapter(context, 0, chartItems) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { return getItem(position)!!.getView(position, convertView, context)!! } @@ -66,7 +66,7 @@ class ListViewMultiChartActivity : DemoBase() { override fun getItemViewType(position: Int): Int { // return the views type val ci = getItem(position) - return if (ci != null) ci.itemType else 0 + return ci?.itemType ?: 0 } override fun getViewTypeCount(): Int { @@ -97,7 +97,7 @@ class ListViewMultiChartActivity : DemoBase() { val values2 = ArrayList() for (i in 0.. Date: Sun, 18 Jan 2026 10:02:49 +0100 Subject: [PATCH 3/4] No stackoverflow in BarDataset --- .../main/java/com/github/mikephil/charting/data/BarDataSet.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.kt index 6860b30a1..8d7826a99 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarDataSet.kt @@ -233,6 +233,6 @@ open class BarDataSet(yVals: MutableList, label: String = "") : BarLi } override fun getEntryIndex(entry: BarEntry): Int { - return this.getEntryIndex(entry) + return super.getEntryIndex(entry) } } From 7e40f6e7bb75a1a42edcf3f7ffb0e94ffb1c27a3 Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Sun, 18 Jan 2026 12:38:58 +0100 Subject: [PATCH 4/4] Cosmetic --- .../androidTest/kotlin/info/appdev/chartexample/StartTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt b/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt index 2e427475e..04204e762 100644 --- a/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt +++ b/app/src/androidTest/kotlin/info/appdev/chartexample/StartTest.kt @@ -213,7 +213,7 @@ class StartTest { composeTestRule.waitForIdle() Thread.sleep(200) // Small delay for back navigation } catch (e: Exception) { - Timber.e("Error at index $index: $optionMenu - ${e.message}", e) + Timber.e("#$index/'${contentClass.simpleName}': '$optionMenu' ${e.message}", e) onView(ViewMatchers.isRoot()) .perform(captureToBitmap { bitmap: Bitmap -> bitmap.writeToTestStorage(