フリックで Activity 切り替え

前回と同様に、Activity の切り替えをフリックで実行する為のクラス。
これも、android.view.View.setOnTouchListener で指定する。

import android.app.Activity;
import android.content.Intent;
import android.view.MotionEvent;
import android.view.View;
/**
 * FlickTouchTransition
 *
 * 右 → 左 startActivity(Intent)
 * 左 → 右 finish()実行
 */

public class FlickTouchTransition implements View.OnTouchListener{
   private float lastTouchX;
   private float currentX;
   private Activity activity;
   private Intent startIntent;
   private int play;
   /**
    * コンストラクタ
    * @param myactivity
    * @param startIntent 右フリックで開始する Intent
    * @param touchPlay 遊び 100以上が妥当
    */

   public FlickTouchTransition(Activity myactivity,Intent startIntent,int touchPlay){
      this.activity = myactivity;
      this.startIntent = startIntent;
      this.play = touchPlay;
   }

   /**
    * コンストラクタ(右フリックで開始する Intent無い場合)
    * @param myactivity
    * @param touchPlay 遊び 100以上が妥当
    */

   public FlickTouchTransition(Activity myactivity,int touchPlay){
      this.activity = myactivity;
      this.startIntent = null;
      this.play = touchPlay;
   }

   @Override
   public boolean onTouch(View v,MotionEvent event){
      if (event.getAction()==MotionEvent.ACTION_DOWN){
         lastTouchX = event.getX();
      }else if(event.getAction()==MotionEvent.ACTION_UP){
         currentX = event.getX();
         if (lastTouchX < (currentX + play)){
            // 前に戻る動作
            activity.finish();
         }else if(lastTouchX > (currentX + play)){
            // 次に移動する動作
            if (startIntent != null){
               activity.startActivity(startIntent);
            }

         }
      }
      return true;
   }
}