Example usage for android.view MotionEvent getButtonState

List of usage examples for android.view MotionEvent getButtonState

Introduction

In this page you can find the example usage for android.view MotionEvent getButtonState.

Prototype

public final int getButtonState() 

Source Link

Document

Gets the state of all buttons that are pressed such as a mouse or stylus button.

Usage

From source file:Main.java

/**
 * Identifies if the provided {@link MotionEvent} is a stylus with the primary stylus button
 * pressed.// w w  w  . java2  s . c o m
 *
 * @param event The event to check.
 * @return Whether a stylus button press occurred.
 */
private static boolean isStylusButtonPressed(MotionEvent event) {
    return event.getToolType(0) == MotionEvent.TOOL_TYPE_STYLUS
            && ((event.getButtonState() & MotionEvent.BUTTON_SECONDARY) == MotionEvent.BUTTON_SECONDARY);
}

From source file:Main.java

/**
 * Performs button-related actions during a touch down event.
 *
 * @param event The event.//from  w  ww .j  a  v  a2  s .  c o  m
 * @return True if the down was consumed.
 */
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private static boolean performButtonActionOnTouchDown(View v, MotionEvent event) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        if ((event.getButtonState() & MotionEvent.BUTTON_SECONDARY) != 0) {
            if (v.showContextMenu()) {
                return true;
            }
        }
    }
    return false;
}

From source file:Main.java

public static JSONObject CreateJSonObjectFromMotionEvent(MotionEvent e) throws JSONException {
    JSONObject jObj = new JSONObject();
    jObj.put("downTime", e.getDownTime());
    jObj.put("eventTime", e.getEventTime());
    jObj.put("action", e.getAction());
    jObj.put("pointerCount", e.getPointerCount());
    jObj.put("metaState", e.getMetaState());
    jObj.put("buttonState", e.getButtonState());
    jObj.put("xPrecision", e.getXPrecision());
    jObj.put("yPrecision", e.getYPrecision());
    jObj.put("deviceId", e.getDeviceId());
    jObj.put("edgeFlags", e.getEdgeFlags());
    jObj.put("source", e.getSource());
    jObj.put("flags", e.getFlags());

    for (int i = 0; i < e.getPointerCount(); i++) {
        PointerProperties prop = new PointerProperties();
        e.getPointerProperties(i, prop);

        PointerCoords coords = new PointerCoords();
        e.getPointerCoords(i, coords);//w  w  w.ja va 2 s.  c  o  m

        JSONObject pointer = JObjFromPointer(prop, coords);
        jObj.accumulate("pointers", pointer);
    }

    return jObj;
}

From source file:org.connectbot.util.TerminalTextViewOverlay.java

/**
 * Takes an android mouse event and produces a Java InputEvent modifiers int which can be
 * passed to vt320.//from  w w  w .  j  av a 2s  . c  o  m
 * @param mouseEvent The {@link MotionEvent} which should be a mouse click or release.
 * @return A Java InputEvent modifier int. See
 * http://docs.oracle.com/javase/7/docs/api/java/awt/event/InputEvent.html
 */
@TargetApi(14)
private static int mouseEventToJavaModifiers(MotionEvent mouseEvent) {
    if (MotionEventCompat.getSource(mouseEvent) != InputDevice.SOURCE_MOUSE)
        return 0;

    int mods = 0;

    // See http://docs.oracle.com/javase/7/docs/api/constant-values.html
    int buttonState = mouseEvent.getButtonState();
    if ((buttonState & MotionEvent.BUTTON_PRIMARY) != 0)
        mods |= 16;
    if ((buttonState & MotionEvent.BUTTON_SECONDARY) != 0)
        mods |= 8;
    if ((buttonState & MotionEvent.BUTTON_TERTIARY) != 0)
        mods |= 4;

    // Note: Meta and Ctrl are intentionally swapped here to keep logic in vt320 simple.
    int meta = mouseEvent.getMetaState();
    if ((meta & KeyEvent.META_META_ON) != 0)
        mods |= 2;
    if ((meta & KeyEvent.META_SHIFT_ON) != 0)
        mods |= 1;
    if ((meta & KeyEvent.META_CTRL_ON) != 0)
        mods |= 4;

    return mods;
}

From source file:org.connectbot.util.TerminalTextViewOverlay.java

/**
 * @param event/*  www  .j  ava  2 s . co  m*/
 * @param bridge
 * @return True if the event is handled.
 */
@TargetApi(14)
private boolean onMouseEvent(MotionEvent event, TerminalBridge bridge) {
    int row = (int) Math.floor(event.getY() / bridge.charHeight);
    int col = (int) Math.floor(event.getX() / bridge.charWidth);
    int meta = event.getMetaState();
    boolean shiftOn = (meta & KeyEvent.META_SHIFT_ON) != 0;
    vt320 vtBuffer = (vt320) bridge.buffer;
    boolean mouseReport = vtBuffer.isMouseReportEnabled();

    // MouseReport can be "defeated" using the shift key.
    if (!mouseReport || shiftOn) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            if (event.getButtonState() == MotionEvent.BUTTON_TERTIARY) {
                // Middle click pastes.
                pasteClipboard();
                return true;
            }

            // Begin "selection mode"

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                closeSelectionActionMode();
            }
        } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
            // In the middle of selection.

            if (selectionActionMode == null) {
                selectionActionMode = startActionMode(new TextSelectionActionModeCallback());
            }

            int selectionStart = getSelectionStart();
            int selectionEnd = getSelectionEnd();

            if (selectionStart > selectionEnd) {
                int tempStart = selectionStart;
                selectionStart = selectionEnd;
                selectionEnd = tempStart;
            }

            currentSelection = getText().toString().substring(selectionStart, selectionEnd);
        }
    } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
        terminalView.viewPager.setPagingEnabled(false);
        vtBuffer.mousePressed(col, row, mouseEventToJavaModifiers(event));
        return true;
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
        terminalView.viewPager.setPagingEnabled(true);
        vtBuffer.mouseReleased(col, row);
        return true;
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
        int buttonState = event.getButtonState();
        int button = (buttonState & MotionEvent.BUTTON_PRIMARY) != 0 ? 0
                : (buttonState & MotionEvent.BUTTON_SECONDARY) != 0 ? 1
                        : (buttonState & MotionEvent.BUTTON_TERTIARY) != 0 ? 2 : 3;
        vtBuffer.mouseMoved(button, col, row, (meta & KeyEvent.META_CTRL_ON) != 0,
                (meta & KeyEvent.META_SHIFT_ON) != 0, (meta & KeyEvent.META_META_ON) != 0);
        return true;
    }

    return false;
}