From fcc68a2de7b47eed04c767e84f1bc2d6ce39512e Mon Sep 17 00:00:00 2001 From: pfthomas Date: Fri, 3 Dec 2021 17:37:50 +0000 Subject: [PATCH] [TimePicker][a11y] Make Talkback announce selected state for clock items PiperOrigin-RevId: 413955068 --- .../material/timepicker/ClockFaceView.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/java/com/google/android/material/timepicker/ClockFaceView.java b/lib/java/com/google/android/material/timepicker/ClockFaceView.java index 05e32c61079..1e45c6462d0 100644 --- a/lib/java/com/google/android/material/timepicker/ClockFaceView.java +++ b/lib/java/com/google/android/material/timepicker/ClockFaceView.java @@ -261,17 +261,18 @@ private void findIntersectingTextView() { offsetDescendantRectToMyCoords(tv, textViewRect); scratch.set(textViewRect); - RadialGradient radialGradient = getGradientForTextView(selectorBox, scratch); - tv.getPaint().setShader(radialGradient); + if (RectF.intersects(selectorBox, scratch)) { + tv.getPaint().setShader(getGradient(selectorBox)); + tv.setSelected(true); + } else { + tv.getPaint().setShader(null); // clear + tv.setSelected(false); + } tv.invalidate(); } } - private RadialGradient getGradientForTextView(RectF selectorBox, RectF tvBox) { - if (!RectF.intersects(selectorBox, tvBox)) { - return null; - } - + private RadialGradient getGradient(RectF selectorBox) { return new RadialGradient( (selectorBox.centerX() - scratch.left), (selectorBox.centerY() - scratch.top),