package com.linangran.tgfcapp.activities;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.linangran.tgfcapp.R;
/**
* Created by linangran on 3/2/15.
*/
public class SwipeBackActivity extends AnalyzableActivity
{
private LinearLayout containerLinearLayout;
private ImageView leftImageView, rightImageView;
private GestureDetector.SimpleOnGestureListener onSwipeListener;
private GestureDetector detector;
private int swipeThreshold = 10;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
@Override
public void setContentView(int layoutResID)
{
super.setContentView(R.layout.activity_swipe_back);
this.containerLinearLayout = (LinearLayout) findViewById(R.id.activity_swipe_back_container);
this.swipeThreshold = (int) (this.containerLinearLayout.getWidth() * 0.2);
getLayoutInflater().inflate(layoutResID, this.containerLinearLayout);
this.leftImageView = (ImageView) findViewById(R.id.activity_swipe_back_left);
this.rightImageView = (ImageView) findViewById(R.id.activity_swipe_back_right);
this.onSwipeListener = new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
super.onFling(e1, e2, velocityX, velocityY);
//Log.w("", e1.toString() + e2.toString());
if (e1.getX() - e2.getX() < -swipeThreshold)
{
finishToRight();
}
else if (e1.getX() - e2.getX() > swipeThreshold)
{
finishToLeft();
}
return true;
}
};
this.detector = new GestureDetector(this, this.onSwipeListener);
this.leftImageView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return !detector.onTouchEvent(event);
}
});
this.rightImageView.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event)
{
return !detector.onTouchEvent(event);
}
});
}
private void finishToLeft()
{
this.finish();
overridePendingTransition(R.anim.hold, R.anim.slide_to_left_out);
}
private void finishToRight()
{
this.finish();
overridePendingTransition(R.anim.hold, R.anim.slide_to_right_out);
}
}