package de.tudarmstadt.informatik.hostage.ui2.listeners;

import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;

/**
 * @author Alexander Brakowski
 * @created 27.01.14 23:47
 */
public class OnSwipeTouchListener implements OnTouchListener {

	private final GestureDetector gestureDetector = new GestureDetector(MainActivity.getContext(), new GestureListener());

	public boolean onTouch(final View view, final MotionEvent motionEvent) {
		return gestureDetector.onTouchEvent(motionEvent);
	}

	private final class GestureListener extends SimpleOnGestureListener {

		private static final int SWIPE_THRESHOLD = 50;
		private static final int SWIPE_VELOCITY_THRESHOLD = 150;

		@Override
		public boolean onDown(MotionEvent e) {
			return true;
		}

		@Override
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

			try {
				float diffX = e2.getX() - e1.getX();

				if (Math.abs(diffX) > SWIPE_THRESHOLD) {
					if (diffX > 0) {
						onSwipeRight();
					} else {
						onSwipeLeft();
					}
				}
			} catch (Exception exception) {
				exception.printStackTrace();
				return false;
			}

			return true;
		}
	}

	public void onSwipeRight() {
	}

	public void onSwipeLeft() {
	}
}
