android.support.v4.view.accessibility.AccessibilityNodeInfoCompat#findFocus ( )源码实例Demo

下面列出了android.support.v4.view.accessibility.AccessibilityNodeInfoCompat#findFocus ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: brailleback   文件: IMENavigationMode.java
/** Returns true if a field suitable for modal editing is focused. */
private boolean isModalFieldFocused() {
    // Only instances of EditText with both input and accessibility focus
    // should be edited modally.
    AccessibilityNodeInfoCompat root = null;
    AccessibilityNodeInfoCompat accessibilityFocused = null;
    try {
        root = AccessibilityServiceCompatUtils.getRootInActiveWindow(
                mAccessibilityService);
        if (root == null) {
            return false;
        }
        accessibilityFocused = root.findFocus(
            AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);
        return (accessibilityFocused != null &&
                accessibilityFocused.isFocused() &&
                AccessibilityNodeInfoUtils.nodeMatchesClassByType(
                        mAccessibilityService, accessibilityFocused,
                        EditText.class));
    } finally {
        AccessibilityNodeInfoUtils.recycleNodes(
            root, accessibilityFocused);
    }
}
 
源代码2 项目: brailleback   文件: IMENavigationMode.java
/** Returns true if a self-brailled node is focused. */
private boolean isSelfBrailledFieldFocused() {
    AccessibilityNodeInfoCompat root = null;
    AccessibilityNodeInfoCompat inputFocused = null;
    AccessibilityNodeInfoCompat accessibilityFocused = null;
    try {
        root = AccessibilityServiceCompatUtils.getRootInActiveWindow(
                mAccessibilityService);
        if (root == null) {
            return false;
        }
        inputFocused = root.findFocus(
            AccessibilityNodeInfoCompat.FOCUS_INPUT);
        if (!mSelfBrailleManager.hasContentForNode(inputFocused)) {
            return false;
        }
        accessibilityFocused = root.findFocus(
            AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);
        return inputFocused.equals(accessibilityFocused);
    } finally {
        AccessibilityNodeInfoUtils.recycleNodes(
            root, inputFocused, accessibilityFocused);
    }
}
 
源代码3 项目: brailleback   文件: IMENavigationMode.java
/** Returns the node with both accessibility and input focus, if any. */
private AccessibilityNodeInfoCompat getFocusedNode() {
    AccessibilityNodeInfoCompat root = null;
    AccessibilityNodeInfoCompat inputFocused = null;
    AccessibilityNodeInfoCompat accessibilityFocused = null;
    try {
        root = AccessibilityServiceCompatUtils.getRootInActiveWindow(
                mAccessibilityService);
        if (root == null) {
            return null;
        }
        inputFocused = root.findFocus(
            AccessibilityNodeInfoCompat.FOCUS_INPUT);
        if (inputFocused == null) {
            return null;
        }
        accessibilityFocused = root.findFocus(
            AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);
        return inputFocused.equals(accessibilityFocused)
            ? inputFocused : null;
    } finally {
        AccessibilityNodeInfoUtils.recycleNodes(
            root, accessibilityFocused);
    }
}
 
源代码4 项目: brailleback   文件: FocusTracker.java
/**
 * Sets the accessibility focus to the node that currently has
 * input focus, if accessibility focus is not already set
 * in the currently focused window.
 */
private void setFocusFromInput() {
    AccessibilityNodeInfoCompat root =
            AccessibilityServiceCompatUtils.getRootInActiveWindow(
                    mAccessibilityService);
    if (root == null) {
        return;
    }
    AccessibilityNodeInfoCompat accessibilityFocused = null;
    AccessibilityNodeInfoCompat inputFocused = null;
    try {
        accessibilityFocused = root.findFocus(
                AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);
        if (accessibilityFocused != null) {
            return;
        }
        inputFocused = root.findFocus(
                AccessibilityNodeInfoCompat.FOCUS_INPUT);
        if (inputFocused == null
                || !AccessibilityNodeInfoUtils.shouldFocusNode(
                        mAccessibilityService, inputFocused)) {
            return;
        }
        inputFocused.performAction(
                AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS);
    } finally {
        AccessibilityNodeInfoUtils.recycleNodes(root, inputFocused,
                accessibilityFocused);
    }
}