Skip to content

Commit cb12a0f

Browse files
authored
Merge pull request #20394 from wordpress-mobile/issue/20363-fix-accessibility-issue-on-traffic-chart
Fix accessibility issue on the traffic chart
2 parents 9a9abce + 668dd97 commit cb12a0f

File tree

5 files changed

+7
-58
lines changed

5 files changed

+7
-58
lines changed

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/BlockListItem.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,6 @@ sealed class BlockListItem(val type: Type) {
270270

271271
data class TrafficBarChartItem(
272272
val entries: List<Bar>,
273-
val overlappingEntries: List<Bar>? = null,
274-
val selectedItem: String? = null,
275-
val onBarSelected: ((period: String?) -> Unit)? = null,
276273
val onBarChartDrawn: ((visibleBarCount: Int) -> Unit)? = null,
277274
val entryContentDescriptions: List<String>
278275
) : BlockListItem(TRAFFIC_BAR_CHART) {

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/traffic/TrafficBarChartViewHolder.kt

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,8 @@ class TrafficBarChartViewHolder(parent: ViewGroup) : BlockListItemViewHolder(
4141
val barCount = chart.draw(item)
4242
if (hasData(item.entries)) {
4343
chart.post {
44-
val accessibilityEvent = object : BarChartAccessibilityHelper.BarChartAccessibilityEvent {
45-
override fun onHighlight(
46-
entry: BarEntry,
47-
index: Int
48-
) {
49-
val value = entry.data as? String
50-
value?.let {
51-
item.onBarSelected?.invoke(it)
52-
}
53-
}
54-
}
55-
5644
val cutContentDescriptions = takeEntriesWithinGraphWidth(barCount, item.entryContentDescriptions)
57-
accessibilityHelper = BarChartAccessibilityHelper(
58-
chart,
59-
contentDescriptions = cutContentDescriptions,
60-
accessibilityEvent = accessibilityEvent
61-
)
45+
accessibilityHelper = BarChartAccessibilityHelper(chart, cutContentDescriptions)
6246

6347
ViewCompat.setAccessibilityDelegate(chart, accessibilityHelper)
6448
}

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/traffic/TrafficOverviewMapper.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,8 @@ class TrafficOverviewMapper @Inject constructor(
8282
fun buildChart(
8383
dates: List<VisitsAndViewsModel.PeriodData>,
8484
statsGranularity: StatsGranularity,
85-
onBarSelected: (String?) -> Unit,
8685
onBarChartDrawn: (visibleBarCount: Int) -> Unit,
87-
selectedType: Int,
88-
selectedItemPeriod: String
86+
selectedType: Int
8987
): List<BlockListItem> {
9088
val chartItems = dates.map {
9189
val value = when (SelectedType.valueOf(selectedType)) {
@@ -116,15 +114,7 @@ class TrafficOverviewMapper @Inject constructor(
116114
chartItems
117115
)
118116

119-
result.add(
120-
BlockListItem.TrafficBarChartItem(
121-
chartItems,
122-
selectedItem = selectedItemPeriod,
123-
onBarSelected = onBarSelected,
124-
onBarChartDrawn = onBarChartDrawn,
125-
entryContentDescriptions = contentDescriptions
126-
)
127-
)
117+
result.add(BlockListItem.TrafficBarChartItem(chartItems, onBarChartDrawn, contentDescriptions))
128118
return result
129119
}
130120
}

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/traffic/TrafficOverviewUseCase.kt

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.wordpress.android.ui.stats.refresh.lists.widget.WidgetUpdater
1919
import org.wordpress.android.ui.stats.refresh.utils.StatsDateFormatter
2020
import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
2121
import org.wordpress.android.ui.stats.refresh.utils.StatsUtils
22-
import org.wordpress.android.ui.stats.refresh.utils.trackGranular
2322
import org.wordpress.android.ui.stats.refresh.utils.trackWithGranularity
2423
import org.wordpress.android.util.AppLog
2524
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
@@ -269,14 +268,7 @@ class TrafficOverviewUseCase(
269268
selectedItem: VisitsAndViewsModel.PeriodData
270269
) {
271270
items.addAll(
272-
trafficOverviewMapper.buildChart(
273-
dates,
274-
lowerGranularity,
275-
this::onBarSelected,
276-
this::onBarChartDrawn,
277-
uiState.selectedPosition,
278-
selectedItem.period
279-
)
271+
trafficOverviewMapper.buildChart(dates, lowerGranularity, this::onBarChartDrawn, uiState.selectedPosition)
280272
)
281273
items.add(
282274
trafficOverviewMapper.buildColumns(
@@ -287,20 +279,6 @@ class TrafficOverviewUseCase(
287279
)
288280
}
289281

290-
private fun onBarSelected(period: String?) {
291-
analyticsTracker.trackGranular(
292-
AnalyticsTracker.Stat.STATS_OVERVIEW_BAR_CHART_TAPPED,
293-
lowerGranularity
294-
)
295-
if (period != null && period != "empty") {
296-
val selectedDate = statsDateFormatter.parseStatsDate(lowerGranularity, period)
297-
selectedDateProvider.selectDate(
298-
selectedDate,
299-
lowerGranularity
300-
)
301-
}
302-
}
303-
304282
@Suppress("MagicNumber")
305283
private fun onColumnSelected(position: Int) {
306284
val event = when (position) {

WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/BarChartAccessibilityHelper.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import com.github.mikephil.charting.interfaces.datasets.IBarDataSet
1212
class BarChartAccessibilityHelper(
1313
private val barChart: BarChart,
1414
private val contentDescriptions: List<String>,
15-
private val accessibilityEvent: BarChartAccessibilityEvent
15+
private val accessibilityEvent: BarChartAccessibilityEvent? = null
1616
) : ExploreByTouchHelper(barChart) {
1717
private val dataSet: IBarDataSet = barChart.data.dataSets.first()
1818

@@ -51,7 +51,7 @@ class BarChartAccessibilityHelper(
5151
when (action) {
5252
AccessibilityNodeInfoCompat.ACTION_CLICK -> {
5353
val entry = dataSet.getEntryForIndex(virtualViewId)
54-
accessibilityEvent.onHighlight(entry, virtualViewId)
54+
accessibilityEvent?.onHighlight(entry, virtualViewId)
5555
return true
5656
}
5757
}
@@ -74,7 +74,7 @@ class BarChartAccessibilityHelper(
7474
}
7575
}
7676

77-
node.addAction(AccessibilityActionCompat.ACTION_CLICK)
77+
accessibilityEvent?.let { node.addAction(AccessibilityActionCompat.ACTION_CLICK) }
7878
val entryRectF = barChart.getBarBounds(dataSet.getEntryForIndex(virtualViewId))
7979
val entryRect = Rect()
8080
entryRectF.round(entryRect)

0 commit comments

Comments
 (0)