List of usage examples for android.support.v4.view MotionEventCompat ACTION_HOVER_MOVE
int ACTION_HOVER_MOVE
To view the source code for android.support.v4.view MotionEventCompat ACTION_HOVER_MOVE.
Click Source Link
From source file:com.fishstix.dosboxfree.DBGLSurfaceView.java
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override/*from w ww . ja v a 2 s .com*/ public boolean onGenericMotionEvent(MotionEvent event) { if (event.getEventTime() + EVENT_THRESHOLD_DECAY < SystemClock.uptimeMillis()) { //Log.i("DosBoxTurbo","eventtime: "+event.getEventTime() + " systemtime: "+SystemClock.uptimeMillis()); return true; // get rid of old events } final int pointerIndex = MotionEventCompat.getActionIndex(event); final int pointerId = MotionEventCompat.getPointerId(event, pointerIndex); if ((MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_MOVE) && ((mWrap.getSource(event) & TouchEventWrapper.SOURCE_CLASS_MASK) == TouchEventWrapper.SOURCE_CLASS_JOYSTICK)) { if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) && (mAnalogStickPref < 3)) { // use new 3.1 API to handle joystick movements int historySize = event.getHistorySize(); for (int i = 0; i < historySize; i++) { processJoystickInput(event, i); } processJoystickInput(event, -1); return true; } else { // use older 2.2+ API to handle joystick movements if (mInputMode == INPUT_MODE_REAL_JOYSTICK) { x[pointerId] = mWrap.getX(event, pointerId); y[pointerId] = mWrap.getY(event, pointerId); DosBoxControl.nativeJoystick((int) ((x[pointerId] * 256f) + mJoyCenterX), (int) ((y[pointerId] * 256f) + mJoyCenterY), ACTION_MOVE, -1); return true; } } } else if ((MotionEventCompat.getActionMasked(event) == MotionEventCompat.ACTION_HOVER_MOVE) && ((mWrap.getSource(event) & TouchEventWrapper.SOURCE_CLASS_MASK) == TouchEventWrapper.SOURCE_CLASS_POINTER)) { if (mInputMode == INPUT_MODE_REAL_MOUSE) { x_last[pointerId] = x[pointerId]; y_last[pointerId] = y[pointerId]; x[pointerId] = mWrap.getX(event, pointerId); y[pointerId] = mWrap.getY(event, pointerId); if (mAbsolute) { DosBoxControl.nativeMouseWarp(x[pointerId], y[pointerId], mRenderer.x, mRenderer.y, mRenderer.width, mRenderer.height); } else { DosBoxControl.nativeMouse((int) (x[pointerId] * mMouseSensitivityX), (int) (y[pointerId] * mMouseSensitivityY), (int) (x_last[pointerId] * mMouseSensitivityX), (int) (y_last[pointerId] * mMouseSensitivityY), 2, -1); } int buttonState = mWrap.getButtonState(event); if (((buttonState & TouchEventWrapper.BUTTON_SECONDARY) != 0) && !mSPenButton) { // Handle Samsung SPen Button (RMB) - DOWN DosBoxControl.nativeMouse(0, 0, 0, 0, ACTION_DOWN, BTN_B); mSPenButton = true; } else if (((buttonState & TouchEventWrapper.BUTTON_SECONDARY) == 0) && mSPenButton) { // Handle Samsung SPen Button (RMB) - UP DosBoxControl.nativeMouse(0, 0, 0, 0, ACTION_UP, BTN_B); mSPenButton = false; } if (mDebug) Log.d("DosBoxTurbo", "onGenericMotionEvent() INPUT_MODE_REAL_MOUSE x: " + x[pointerId] + " y: " + y[pointerId] + " | xL: " + x_last[pointerId] + " yL: " + y_last[pointerId]); try { if (!mInputLowLatency) Thread.sleep(95); else Thread.sleep(65); } catch (InterruptedException e) { } return true; } } else if (MotionEventCompat.getActionMasked(event) == MotionEventCompat.ACTION_HOVER_EXIT) { if (mInputMode == INPUT_MODE_REAL_MOUSE) { // hover exit int buttonState = mWrap.getButtonState(event); if (((buttonState & TouchEventWrapper.BUTTON_SECONDARY) == 0) && mSPenButton) { // Handle Samsung SPen Button (RMB) - UP DosBoxControl.nativeMouse(0, 0, 0, 0, ACTION_UP, BTN_B); mSPenButton = false; return true; } } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { return super.onGenericMotionEvent(event); } else { return false; } }