Example usage for android.support.v4.view.accessibility AccessibilityEventCompat TYPE_VIEW_HOVER_EXIT

List of usage examples for android.support.v4.view.accessibility AccessibilityEventCompat TYPE_VIEW_HOVER_EXIT

Introduction

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

Prototype

int TYPE_VIEW_HOVER_EXIT

To view the source code for android.support.v4.view.accessibility AccessibilityEventCompat TYPE_VIEW_HOVER_EXIT.

Click Source Link

Document

Represents the event of a hover exit over a android.view.View .

Usage

From source file:com.google.android.marvin.mytalkback.ProcessorLongHover.java

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    final int eventType = event.getEventType();

    if ((eventType == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER)
            || (eventType == AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START)) {
        mIsTouchExploring = true;//ww  w  .  j a v  a 2  s  . c  o m
    }

    if (eventType == AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END) {
        mIsTouchExploring = false;
        cacheEnteredNode(null);
        cancelLongHover();
        return;
    }

    if (!mIsTouchExploring
            || ((eventType != TRIGGER_ACTION) && (eventType != AccessibilityEvent.TYPE_VIEW_HOVER_EXIT))) {
        return;
    }

    final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event);
    final AccessibilityNodeInfoCompat source = record.getSource();

    if (source == null) {
        return;
    }

    if (eventType == TRIGGER_ACTION) {
        cacheEnteredNode(source);
        postLongHoverRunnable(event);
    } else if (eventType == AccessibilityEventCompat.TYPE_VIEW_HOVER_EXIT) {
        if (source.equals(mWaitingForExit)) {
            cancelLongHover();
        }
    }

    source.recycle();
}

From source file:com.android.screenspeak.eventprocessor.ProcessorAccessibilityHints.java

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    final int eventType = event.getEventType();

    if (eventType == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER
            || eventType == AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START) {
        mIsTouchExploring = true;/*from ww  w. j  a  v a2  s .c o m*/
    }

    if (eventType == AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END
            || eventType == AccessibilityEvent.TYPE_VIEW_CLICKED) {
        mIsTouchExploring = false;
        cacheEnteredNode(null);
        cancelA11yHint();
        return;
    }

    if (!mIsTouchExploring || ((eventType != AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED)
            && (eventType != AccessibilityEvent.TYPE_VIEW_HOVER_EXIT))) {
        return;
    }

    final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
    final AccessibilityNodeInfoCompat source = record.getSource();

    if (source == null) {
        return;
    }

    if (eventType == AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
        cacheEnteredNode(source);
        String hint = getHintFromEvent(event);
        if (hint != null) {
            postA11yHintRunnable(hint);
        }
    } else if (eventType == AccessibilityEventCompat.TYPE_VIEW_HOVER_EXIT) {
        if (source.equals(mWaitingForExit)) {
            cancelA11yHint();
        }
    }

    source.recycle();
}

From source file:com.android.inputmethod.accessibility.KeyboardAccessibilityNodeProvider.java

public void onHoverExitFrom(final Key key) {
    mHoveringNodeId = UNDEFINED;//from  w w w. j  av  a2 s  . c  om
    // Invalidate the node info of the key to be able to revert the change we have done
    // in {@link #onHoverEnterTo(Key)}.
    sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
    sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_VIEW_HOVER_EXIT);
}

From source file:com.android.hareime.accessibility.AccessibleKeyboardViewProxy.java

/**
 * Handles a hover event on a key. If {@link Key} extended View, this would
 * be analogous to calling View.onHoverEvent(MotionEvent).
 *
 * @param key The currently hovered key.
 * @param event The hover event./*from  w  w  w.j av a 2  s  .c o  m*/
 * @return {@code true} if the event was handled.
 */
private boolean onHoverKey(Key key, MotionEvent event) {
    // Null keys can't receive events.
    if (key == null) {
        return false;
    }

    final AccessibilityEntityProvider provider = getAccessibilityNodeProvider();

    switch (event.getAction()) {
    case MotionEvent.ACTION_HOVER_ENTER:
        provider.sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_VIEW_HOVER_ENTER);
        provider.performActionForKey(key, AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS, null);
        break;
    case MotionEvent.ACTION_HOVER_EXIT:
        provider.sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_VIEW_HOVER_EXIT);
        break;
    }

    return true;
}

From source file:com.onyx.latinime.accessibility.AccessibleKeyboardViewProxy.java

/**
 * Handles a hover event on a key. If {@link Key} extended View, this would be analogous to
 * calling View.onHoverEvent(MotionEvent).
 *
 * @param key The currently hovered key.
 * @param event The hover event.// w w  w .j  av a 2s . co  m
 * @return {@code true} if the event was handled.
 */
private boolean onHoverKey(final Key key, final MotionEvent event) {
    // Null keys can't receive events.
    if (key == null) {
        return false;
    }
    final AccessibilityEntityProvider provider = getAccessibilityNodeProvider();

    switch (event.getAction()) {
    case MotionEvent.ACTION_HOVER_ENTER:
        provider.sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_VIEW_HOVER_ENTER);
        provider.performActionForKey(key, AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS, null);
        break;
    case MotionEvent.ACTION_HOVER_EXIT:
        provider.sendAccessibilityEventForKey(key, AccessibilityEventCompat.TYPE_VIEW_HOVER_EXIT);
        break;
    }
    return true;
}