1 package jp.sfjp.gokigen.a01c.liveview;
3 import android.content.Context;
4 import android.util.Log;
5 import android.util.SparseArray;
6 import android.view.MotionEvent;
7 import android.view.View;
9 import jp.sfjp.gokigen.a01c.IChangeScene;
10 import jp.sfjp.gokigen.a01c.R;
11 import jp.sfjp.gokigen.a01c.liveview.button.IPushedButton;
12 import jp.sfjp.gokigen.a01c.liveview.button.PushedButtonFactory;
13 import jp.sfjp.gokigen.a01c.olycamerawrapper.dispatcher.ICameraFeatureDispatcher;
16 * 画面がタッチ・クリックされた時の処理分岐
19 public class OlyCameraLiveViewOnTouchListener implements View.OnClickListener, View.OnTouchListener, View.OnLongClickListener
21 private final String TAG = toString();
23 private final ICameraFeatureDispatcher dispatcher;
24 private final IChangeScene changeScene;
25 private final SparseArray<IPushedButton> buttonDispatcher;
26 private boolean prohibitOperation = true;
33 public OlyCameraLiveViewOnTouchListener(Context context, ICameraFeatureDispatcher dispatcher, IChangeScene changeScene)
35 this.dispatcher = dispatcher;
36 this.changeScene = changeScene;
37 buttonDispatcher = new PushedButtonFactory(context, dispatcher).getButtonMap();
41 * ボタン(オブジェクト)をクリックしたときの処理
44 public void onClick(View v)
47 Log.v(TAG, "onClick() : " + id);
48 if (prohibitOperation)
50 // 操作禁止の指示がされていた場合は何もしない
51 Log.v(TAG, "onClick() : prohibit operation");
56 IPushedButton button = buttonDispatcher.get(id);
59 button.pushedButton(false);
74 public boolean onLongClick(View v)
78 Log.v(TAG, "onLongClick() : " + id);
79 if (prohibitOperation)
81 // 操作禁止の指示がされていた場合は何もしない
82 Log.v(TAG, "onLongClick() : prohibit operation");
87 IPushedButton button = buttonDispatcher.get(id);
90 ret = button.pushedButton(true);
101 * 画面(ライブビュー部分)をタッチした時の処理
105 public boolean onTouch(View v, MotionEvent event)
108 Log.v(TAG, "onTouch() : " + id);
109 if (prohibitOperation)
111 // 操作禁止の指示がされていた場合は、接続状態を示すようにする
112 Log.v(TAG, "onTouch() : prohibit operation");
113 return (changeScene.showConnectionStatus());
115 // 現在のところ、タッチエリアの場合はオートフォーカス実行で固定
116 return ((id == R.id.liveview)&&(dispatcher.dispatchAreaAction(event, ICameraFeatureDispatcher.FEATURE_AREA_ACTION_DRIVE_AUTOFOCUS)));
122 * @param operation true: 操作可能, false: 操作不可
125 public void setEnableOperation(boolean operation)
127 prohibitOperation = !operation;
133 * @return true: 操作可能, false: 操作不可
135 public boolean isEnabledOperation()
137 return (!prohibitOperation);