Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5679bed5 authored by Alan Viverette's avatar Alan Viverette
Browse files

Added accessibility code to read back typed or deleted digits.

Bug: 5337550
Change-Id: I5e8cd8d2fb5466827dc47f38e746a415142fb22d
parent a2aaa653
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -59,9 +59,22 @@ public class DigitsEditText extends EditText {
    @Override
    public void sendAccessibilityEventUnchecked(AccessibilityEvent event) {
        if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED) {
            // AsYouTypeFormatter frequently replaces digits with formatted ones, which makes
            // tts too verbose. Let's ignore the whole event.
            // Since we're replacing the text every time we add or remove a
            // character, only read the difference. (issue 5337550)
            final int added = event.getAddedCount();
            final int removed = event.getRemovedCount();
            final int length = event.getBeforeText().length();
            if (added > removed) {
                event.setRemovedCount(0);
                event.setAddedCount(1);
                event.setFromIndex(length);
            } else if (removed > added) {
                event.setRemovedCount(1);
                event.setAddedCount(0);
                event.setFromIndex(length - 1);
            } else {
                return;
            }
        } else if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_FOCUSED) {
            // The parent EditText class lets tts read "edit box" when this View has a focus, which
            // confuses users on app launch (issue 5275935).