Android Open Source - HexNanoController_Android Enhanced Gesture Detector






From Project

Back to project page HexNanoController_Android.

License

The source code is released under:

Code license GNU GPL v2 http://www.gnu.org/licenses/gpl.html Content license CC BY-NC-SA 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/

If you think the Android project HexNanoController_Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.hexairbot.hexmini.gestures;
/*from  w  ww.ja  v  a2 s . c  o  m*/
import android.content.Context;
import android.view.GestureDetector;
import android.view.MotionEvent;

/**
 * EnhancedGestureDetector detects double tap gesture of second pointer when using multi touch in addition to
 * standard GestureDetecror gestures.
 */
public class EnhancedGestureDetector extends GestureDetector
{
    // This is minimal time interval between touches
    private static final int DOUBLE_TAP_TIMESTAMP_DELTA = 200;
    // This is minimal distance between two touches.
    private static final int COORDINATE_DELTA = 50;
    
    // Time stamp of previous touch
    private long timestampLast;
    // Coordinates of previous touch
    private float xLast;
    private float yLast;
    
    private OnDoubleTapListener listener;
   
    
    public EnhancedGestureDetector(Context context, OnGestureListener listener)
    {
        super(context, listener);
    }

    
    @Override
    public boolean onTouchEvent(MotionEvent ev)
    { 
        if (ev.getActionMasked() == MotionEvent.ACTION_POINTER_UP) {
            long currTimestamp = ev.getEventTime();
            
            if (ev.getPointerCount() > 1) {
                if (currTimestamp - timestampLast < DOUBLE_TAP_TIMESTAMP_DELTA &&
                        Math.abs(ev.getX(1) - xLast) < COORDINATE_DELTA &&
                        Math.abs(ev.getY(1) - yLast) < COORDINATE_DELTA ) 
                {
                    // Double tap detected. Calling listener.
                    if (listener != null) {
                        return listener.onDoubleTap(ev);
                    }
                }
            
                xLast = ev.getX(1);
                yLast = ev.getY(1);                    
                timestampLast = ev.getEventTime();
            }
        }
        
        return super.onTouchEvent(ev);
    }

    
    @Override
    public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener)
    {
        super.setOnDoubleTapListener(onDoubleTapListener);
        this.listener = onDoubleTapListener;
    }
}




Java Source Code List

.FileHelper.java
.Input.java
.Output.java
.Serializable.java
com.hexairbot.hexmini.HelpActivity.java
com.hexairbot.hexmini.HexMiniApplication.java
com.hexairbot.hexmini.HudActivity.java
com.hexairbot.hexmini.HudViewControllerDelegate.java
com.hexairbot.hexmini.HudViewController.java
com.hexairbot.hexmini.SettingsDialogDelegate.java
com.hexairbot.hexmini.SettingsDialog.java
com.hexairbot.hexmini.SettingsViewControllerDelegate.java
com.hexairbot.hexmini.SettingsViewController.java
com.hexairbot.hexmini.ViewController.java
com.hexairbot.hexmini.adapter.SettingsViewAdapter.java
com.hexairbot.hexmini.ble.BleConnectinManagerDelegate.java
com.hexairbot.hexmini.ble.BleConnectinManager.java
com.hexairbot.hexmini.ble.BluetoothLeService.java
com.hexairbot.hexmini.gestures.EnhancedGestureDetector.java
com.hexairbot.hexmini.modal.ApplicationSettings.java
com.hexairbot.hexmini.modal.Channel.java
com.hexairbot.hexmini.modal.OSDCommon.java
com.hexairbot.hexmini.modal.Transmitter.java
com.hexairbot.hexmini.sensors.DeviceOrientationChangeDelegate.java
com.hexairbot.hexmini.sensors.DeviceOrientationManager.java
com.hexairbot.hexmini.sensors.DeviceSensorManagerWrapper.java
com.hexairbot.hexmini.sensors.SensorManagerWrapper.java
com.hexairbot.hexmini.services.ConnectStateManager.java
com.hexairbot.hexmini.services.IpcControlService.java
com.hexairbot.hexmini.services.IpcProxy.java
com.hexairbot.hexmini.services.NavData.java
com.hexairbot.hexmini.services.OnIpcConnectChangedListener.java
com.hexairbot.hexmini.services.VIConfig.java
com.hexairbot.hexmini.ui.Button.java
com.hexairbot.hexmini.ui.Image.java
com.hexairbot.hexmini.ui.Indicator.java
com.hexairbot.hexmini.ui.Sprite.java
com.hexairbot.hexmini.ui.Text.java
com.hexairbot.hexmini.ui.ToggleButton.java
com.hexairbot.hexmini.ui.UIRenderer.java
com.hexairbot.hexmini.ui.control.CustomSeekBar.java
com.hexairbot.hexmini.ui.control.ViewPagerIndicator.java
com.hexairbot.hexmini.ui.gl.GLSprite.java
com.hexairbot.hexmini.ui.joystick.AcceleratorJoystick.java
com.hexairbot.hexmini.ui.joystick.AnalogueJoystick.java
com.hexairbot.hexmini.ui.joystick.JoystickBase.java
com.hexairbot.hexmini.ui.joystick.JoystickFactory.java
com.hexairbot.hexmini.ui.joystick.JoystickListener.java
com.hexairbot.hexmini.util.DebugHandler.java
com.hexairbot.hexmini.util.FontUtils.java
com.hexairbot.hexmini.util.SystemUiHiderBase.java
com.hexairbot.hexmini.util.SystemUiHiderHoneycomb.java
com.hexairbot.hexmini.util.SystemUiHider.java
com.hexairbot.hexmini.util.SystemUtil.java
com.hexairbot.hexmini.util.TextureUtils.java
fix.android.opengl.GLES20.java