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
This commit is contained in:
Alan Viverette
2014-12-12 14:13:24 -08:00
parent 4357d4eabc
commit cd305ae3ce
2 changed files with 12 additions and 4 deletions

View File

@@ -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()) {

View File

@@ -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);
}
}
}