package be.geelen.yarr;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Toast;
public class VoteViewPager extends ViewPager {
public VoteViewPager(Context context) {
super(context);
}
public VoteViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
private float firstX = -1;
private float firstY = -1;
private OnVoteListener onVoteListener;
@Override
public boolean onTouchEvent(MotionEvent ev) {
int previousItem = getCurrentItem();
boolean result = super.onTouchEvent(ev);
if (firstX == -1) {
firstX = ev.getX();
firstY = ev.getY();
}
if (ev.getAction() == MotionEvent.ACTION_UP) {
int currentItem = getCurrentItem();
if (currentItem == previousItem + 1) {
float x = firstX / getWidth();
float y = firstY / getHeight();
if (x > .65) {
float maxUp = (float) (getResources().getInteger(R.integer.upvote_strip_height_percent) / 100.0);
float minDown = (float) (1.0 - (getResources().getInteger(R.integer.downvote_strip_height_percent) / 100.0));
if (y < maxUp) {
if (onVoteListener != null)
onVoteListener.onVote(previousItem, true);
Toast.makeText(getContext(), "upvoted " + x, Toast.LENGTH_SHORT).show();
} else if (y > minDown) {
if (onVoteListener != null)
onVoteListener.onVote(previousItem, false);
Toast.makeText(getContext(), "downvoted " + x, Toast.LENGTH_SHORT).show();
}
}
}
firstX = -1;
firstY = -1;
}
return result;
}
public void setOnVoteListener(OnVoteListener onVoteListener) {
this.onVoteListener = onVoteListener;
}
public interface OnVoteListener {
void onVote(int i, boolean up);
}
}