Skip to content

Commit f5f0bdc

Browse files
authored
Merge pull request #96 from AkYML/bug/linechart_CM1448
fix Accessibility Dialog in multiple line charts
2 parents ce606a0 + 4ef00f8 commit f5f0bdc

File tree

1 file changed

+32
-30
lines changed
  • YChartsLib/src/main/java/co/yml/charts/ui/linechart

1 file changed

+32
-30
lines changed

YChartsLib/src/main/java/co/yml/charts/ui/linechart/LineChart.kt

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import co.yml.charts.ui.linechart.model.SelectionHighlightPoint
5151
import co.yml.charts.ui.linechart.model.SelectionHighlightPopUp
5252
import co.yml.charts.common.components.ItemDivider
5353
import co.yml.charts.common.components.accessibility.AccessibilityBottomSheetDialog
54+
import co.yml.charts.common.components.accessibility.CombinedChartInfo
5455
import co.yml.charts.common.components.accessibility.LinePointInfo
5556
import co.yml.charts.common.extensions.RowClip
5657
import co.yml.charts.common.extensions.collectIsTalkbackEnabledAsState
@@ -239,41 +240,42 @@ fun LineChart(modifier: Modifier, lineChartData: LineChartData) {
239240
isTapped = false
240241
selectionTextVisibility = false
241242
})
243+
if (isTalkBackEnabled) {
244+
AccessibilityBottomSheetDialog(
245+
modifier = Modifier.fillMaxSize(),
246+
backgroundColor = Color.White,
247+
content = {
248+
LazyColumn {
249+
items(count = linePlotData.lines.size) { lineIndex ->
250+
linePlotData.lines[lineIndex].dataPoints.forEachIndexed { pointIndex, point ->
251+
Column {
252+
LinePointInfo(
253+
xAxisData.axisLabelDescription(
254+
xAxisData.labelData(
255+
pointIndex
256+
)
257+
),
258+
point.description,
259+
linePlotData.lines[lineIndex].lineStyle.color
260+
)
242261

243-
}
244-
if (isTalkBackEnabled) {
245-
with(lineChartData) {
246-
AccessibilityBottomSheetDialog(
247-
modifier = Modifier.fillMaxSize(),
248-
backgroundColor = Color.White,
249-
content = {
250-
val linePoints = linePlotData.lines.firstOrNull()?.dataPoints
251-
LazyColumn {
252-
items(linePoints?.size ?: 0) { index ->
253-
Column {
254-
LinePointInfo(
255-
xAxisData.axisLabelDescription(
256-
xAxisData.labelData(
257-
index
262+
ItemDivider(
263+
thickness = accessibilityConfig.dividerThickness,
264+
dividerColor = accessibilityConfig.dividerColor
258265
)
259-
),
260-
linePoints?.get(index)?.description ?: "",
261-
linePlotData.lines.firstOrNull()?.lineStyle?.color
262-
?: Color.Transparent
263-
)
264-
ItemDivider(
265-
thickness = accessibilityConfig.dividerThickness,
266-
dividerColor = accessibilityConfig.dividerColor
267-
)
266+
}
267+
268+
}
268269
}
269270
}
270-
}
271-
},
272-
popUpTopRightButtonTitle = accessibilityConfig.popUpTopRightButtonTitle,
273-
popUpTopRightButtonDescription = accessibilityConfig.popUpTopRightButtonDescription,
274-
sheetState = accessibilitySheetState
275-
)
271+
},
272+
popUpTopRightButtonTitle = accessibilityConfig.popUpTopRightButtonTitle,
273+
popUpTopRightButtonDescription = accessibilityConfig.popUpTopRightButtonDescription,
274+
sheetState = accessibilitySheetState
275+
)
276+
276277
}
278+
277279
}
278280
}
279281
}

0 commit comments

Comments
 (0)