package com.example.fling;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;

public class MainActivity extends Activity {

		  private GestureDetector gestureDetector;
		  
		  @Override
		  public void onCreate(Bundle savedInstanceState) {
		  
			  setContentView(R.layout.activity_main);
		    gestureDetector = new GestureDetector(
		                      new SwipeGestureDetector());
		  }

		  /* ... */

		  @Override
		  public boolean onTouchEvent(MotionEvent event) {
		    if (gestureDetector.onTouchEvent(event)) {
		      return true;
		    }
		    return super.onTouchEvent(event);
		  }

		  private void onLeftSwipe() {
		    // Do something
		  }

		  private void onRightSwipe() {
		    // Do something
		  }

		  // Private class for gestures
		  private class SwipeGestureDetector 
		          extends SimpleOnGestureListener implements OnGestureListener {
		    // Swipe properties, you can change it to make the swipe 
		    // longer or shorter and speed
		    private static final int SWIPE_MIN_DISTANCE = 120;
		    private static final int SWIPE_MAX_OFF_PATH = 200;
		    private static final int SWIPE_THRESHOLD_VELOCITY = 200;

		    @Override
		    public boolean onFling(MotionEvent e1, MotionEvent e2,
		                         float velocityX, float velocityY) {
		      try {
		        float diffAbs = Math.abs(e1.getY() - e2.getY());
		        float diff = e1.getX() - e2.getX();

		        if (diffAbs > SWIPE_MAX_OFF_PATH)
		          return false;
		        
		        // Left swipe
		        if (diff > SWIPE_MIN_DISTANCE
		        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
		           //YourActivity.this.onLeftSwipe();
		        	Log.e("YourActivity", "lEFT SWIPE");
		        // Right swipe
		        } else if (-diff > SWIPE_MIN_DISTANCE
		        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
		          //YourActivity.this.onRightSwipe();
		        	Log.e("YourActivity", "rIGHT SWIPE");
		        }
		      } catch (Exception e) {
		        Log.e("YourActivity", "Error on gestures");
		      }
		      return false;
		    }

			@Override
			public boolean onDown(MotionEvent e) {
				// TODO Auto-generated method stub
				return false;
			}

			@Override
			public void onLongPress(MotionEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public boolean onScroll(MotionEvent e1, MotionEvent e2,
					float distanceX, float distanceY) {
				// TODO Auto-generated method stub
				return false;
			}

			@Override
			public void onShowPress(MotionEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public boolean onSingleTapUp(MotionEvent e) {
				// TODO Auto-generated method stub
				return false;
			}
		  }
		}