am 3320ef95: Merge "Add findFocus API for AccessibilityNodeProvider" into klp-dev
* commit '3320ef95de1775cfdb2bdc0c31cf6ba54d8e8900': Add findFocus API for AccessibilityNodeProvider
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user