Example usage for android.support.v4.view.accessibility AccessibilityWindowInfoCompat getType

List of usage examples for android.support.v4.view.accessibility AccessibilityWindowInfoCompat getType

Introduction

In this page you can find the example usage for android.support.v4.view.accessibility AccessibilityWindowInfoCompat getType.

Prototype

public int getType() 

Source Link

Document

Gets the type of the window.

Usage

From source file:com.android.talkback.formatter.TouchExplorationFormatter.java

private static int getWindowType(AccessibilityNodeInfoCompat nodeCompat) {
    if (nodeCompat == null) {
        return -1;
    }//from   ww  w .java  2s.c  o  m

    AccessibilityWindowInfoCompat windowInfoCompat = nodeCompat.getWindow();
    if (windowInfoCompat == null) {
        return -1;
    }

    int windowType = windowInfoCompat.getType();
    windowInfoCompat.recycle();
    return windowType;
}

From source file:com.android.talkback.eventprocessor.ProcessorScreen.java

/**
 * Uses a heuristic to guess whether an event should be announced.
 * Any event that comes from an IME, or an invisible window is considered
 * an announcement./* w w  w .j a v  a2s  .  co  m*/
 */
private boolean shouldAnnounceEvent(AccessibilityEvent event, int windowId) {
    // Assume window ID of 0 is the keyboard.
    if (windowId == WINDOW_ID_NONE) {
        return true;
    }

    // If there's an actual window ID, we need to check the window type (if window available).
    boolean shouldAnnounceWindow = false;
    AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
    AccessibilityNodeInfoCompat source = record.getSource();
    if (source != null) {
        AccessibilityWindowInfoCompat window = source.getWindow();
        if (window != null) {
            shouldAnnounceWindow = window.getType() == AccessibilityWindowInfoCompat.TYPE_INPUT_METHOD;
            window.recycle();
        } else {
            // If window is not visible, we cannot know whether the window type is input method
            // or not. Let's announce it for the case. If window is visible but window info is
            // not available, it can be non-focusable visible window. Don't announce it for the
            // case. It can be a toast.
            shouldAnnounceWindow = !source.isVisibleToUser();
        }
        source.recycle();
    }
    return shouldAnnounceWindow;
}

From source file:com.android.talkback.eventprocessor.ProcessorScreen.java

private int getWindowType(AccessibilityEvent event) {
    if (event == null) {
        return WINDOW_TYPE_NONE;
    }//from   w w  w . ja  v  a2  s . co  m

    AccessibilityNodeInfo nodeInfo = event.getSource();
    if (nodeInfo == null) {
        return WINDOW_TYPE_NONE;
    }

    AccessibilityNodeInfoCompat nodeInfoCompat = new AccessibilityNodeInfoCompat(nodeInfo);
    AccessibilityWindowInfoCompat windowInfoCompat = nodeInfoCompat.getWindow();
    if (windowInfoCompat == null) {
        nodeInfoCompat.recycle();
        return WINDOW_TYPE_NONE;
    }

    int windowType = windowInfoCompat.getType();
    windowInfoCompat.recycle();
    nodeInfoCompat.recycle();

    return windowType;
}