FileDocCategorySizeDatePackage
LiftToActivateListener.javaAPI DocAndroid 5.1 API2807Thu Mar 12 22:22:42 GMT 2015com.android.keyguard

LiftToActivateListener

public class LiftToActivateListener extends Object implements View.OnHoverListener
Hover listener that implements lift-to-activate interaction for accessibility. May be added to multiple views.

Fields Summary
private final android.view.accessibility.AccessibilityManager
mAccessibilityManager
Manager used to query accessibility enabled state.
private boolean
mCachedClickableState
Constructors Summary
public LiftToActivateListener(android.content.Context context)

        mAccessibilityManager = (AccessibilityManager) context.getSystemService(
                Context.ACCESSIBILITY_SERVICE);
    
Methods Summary
public booleanonHover(android.view.View v, android.view.MotionEvent event)

        // When touch exploration is turned on, lifting a finger while
        // inside the view bounds should perform a click action.
        if (mAccessibilityManager.isEnabled()
                && mAccessibilityManager.isTouchExplorationEnabled()) {
            switch (event.getActionMasked()) {
                case MotionEvent.ACTION_HOVER_ENTER:
                    // Lift-to-type temporarily disables double-tap
                    // activation by setting the view as not clickable.
                    mCachedClickableState = v.isClickable();
                    v.setClickable(false);
                    break;
                case MotionEvent.ACTION_HOVER_EXIT:
                    final int x = (int) event.getX();
                    final int y = (int) event.getY();
                    if ((x > v.getPaddingLeft()) && (y > v.getPaddingTop())
                            && (x < v.getWidth() - v.getPaddingRight())
                            && (y < v.getHeight() - v.getPaddingBottom())) {
                        v.performClick();
                    }
                    v.setClickable(mCachedClickableState);
                    break;
            }
        }

        // Pass the event to View.onHoverEvent() to handle accessibility.
        v.onHoverEvent(event);

        // Consume the event so it doesn't fall through to other views.
        return true;