am 3320ef95: Merge "Add findFocus API for AccessibilityNodeProvider" into klp-dev

* commit '3320ef95de1775cfdb2bdc0c31cf6ba54d8e8900':
  Add findFocus API for AccessibilityNodeProvider
This commit is contained in:
Alan Viverette
2013-10-01 11:35:32 -07:00
committed by Android Git Automerger
3 changed files with 24 additions and 2 deletions

View File

@@ -29459,6 +29459,7 @@ package android.view.accessibility {
ctor public AccessibilityNodeProvider();
method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int);
method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String, int);
method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
method public boolean performAction(int, int, android.os.Bundle);
}

View File

@@ -423,9 +423,15 @@ final class AccessibilityInteractionController {
}
} break;
case AccessibilityNodeInfo.FOCUS_INPUT: {
// Input focus cannot go to virtual views.
View target = root.findFocus();
if (target != null && isShown(target)) {
if (target == null || !isShown(target)) {
break;
}
AccessibilityNodeProvider provider = target.getAccessibilityNodeProvider();
if (provider != null) {
focused = provider.findFocus(focusType);
}
if (focused == null) {
focused = target.createAccessibilityNodeInfo();
}
} break;

View File

@@ -132,4 +132,19 @@ public abstract class AccessibilityNodeProvider {
int virtualViewId) {
return null;
}
/**
* Find the virtual view, i.e. a descendant of the host View, that has the
* specified focus type.
*
* @param focus The focus to find. One of
* {@link AccessibilityNodeInfo#FOCUS_INPUT} or
* {@link AccessibilityNodeInfo#FOCUS_ACCESSIBILITY}.
* @return The node info of the focused view or null.
* @see AccessibilityNodeInfo#FOCUS_INPUT
* @see AccessibilityNodeInfo#FOCUS_ACCESSIBILITY
*/
public AccessibilityNodeInfo findFocus(int focus) {
return null;
}
}