From cd305ae3ceef14dd5de807d75aa6167dfcd69c86 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Fri, 12 Dec 2014 14:13:24 -0800 Subject: [PATCH] Give accessibility delegate the first pass at handling ACTION_CLICK Delegation is broken for widgets, but this fixes the most egregious issue where TextViews that are top-level list items weren't handling CLICK actions correctly. This will still need work, since now the focus action won't run, but it's an improvement. BUG: 18736135 Change-Id: I808ef628198946cc87f13c53d6245cd162a1e517 --- core/java/android/view/View.java | 4 +++- core/java/android/widget/TextView.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 2bb1ebcbc0736..75411fe39aa8c 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8185,8 +8185,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @see #performAccessibilityAction(int, Bundle) * * Note: Called from the default {@link AccessibilityDelegate}. + * + * @hide Until we've refactored all accessibility delegation methods. */ - boolean performAccessibilityActionInternal(int action, Bundle arguments) { + public boolean performAccessibilityActionInternal(int action, Bundle arguments) { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 34b3a7290d0b2..765d196509c59 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8475,8 +8475,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } } + /** + * Performs an accessibility action after it has been offered to the + * delegate. + * + * @hide + */ @Override - public boolean performAccessibilityAction(int action, Bundle arguments) { + public boolean performAccessibilityActionInternal(int action, Bundle arguments) { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { boolean handled = false; @@ -8557,10 +8563,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY: case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: { ensureIterableTextForAccessibilitySelectable(); - return super.performAccessibilityAction(action, arguments); + return super.performAccessibilityActionInternal(action, arguments); } default: { - return super.performAccessibilityAction(action, arguments); + return super.performAccessibilityActionInternal(action, arguments); } } }