109 lines
3.6 KiB
Java
109 lines
3.6 KiB
Java
package gazehelper.android.mmbrian.com.gazehelper;
|
|
|
|
import android.app.Activity;
|
|
import android.media.AudioManager;
|
|
import android.media.ToneGenerator;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.TextView;
|
|
import android.widget.ViewFlipper;
|
|
|
|
import java.util.Timer;
|
|
import java.util.TimerTask;
|
|
|
|
|
|
public class MainActivity extends Activity {
|
|
|
|
public static final String CLASS_TAG = "GazeHelper";
|
|
|
|
ViewFlipper flipper;
|
|
Button btn_start;
|
|
EditText txt_gaze_dur, txt_bgaze_dur, txt_ngaze;
|
|
TextView txt_stats;
|
|
|
|
int gaze_dur, bgaze_dur, ngaze, cgaze;
|
|
long total_dur, start_time;
|
|
|
|
static Timer timer;
|
|
ToneGenerator toneG;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
|
|
flipper = (ViewFlipper)findViewById(R.id.flipper);
|
|
|
|
txt_gaze_dur = (EditText)findViewById(R.id.txt_gaze_dur);
|
|
txt_bgaze_dur = (EditText)findViewById(R.id.txt_bgaze_dur);
|
|
txt_ngaze = (EditText)findViewById(R.id.txt_ngaze);
|
|
|
|
txt_stats = (TextView)findViewById(R.id.txt_stats);
|
|
|
|
timer = new Timer("Gaze Timer");
|
|
toneG = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);
|
|
|
|
btn_start = (Button)findViewById(R.id.btn_start);
|
|
btn_start.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
txt_stats.setText("Starting...");
|
|
|
|
gaze_dur = Integer.valueOf(txt_gaze_dur.getText().toString());
|
|
bgaze_dur = Integer.valueOf(txt_bgaze_dur.getText().toString());
|
|
ngaze = Integer.valueOf(txt_ngaze.getText().toString());
|
|
total_dur = (ngaze * gaze_dur + (ngaze - 1) * bgaze_dur) * 1000; // in milliseconds
|
|
|
|
flipper.showNext();
|
|
|
|
cgaze = 0;
|
|
start_time = -1;
|
|
Log.d(CLASS_TAG, "Started...");
|
|
timer = new Timer("Gaze Timer");
|
|
timer.schedule(new TimerTask() {
|
|
@Override
|
|
public void run() {
|
|
runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
updateUI();
|
|
}
|
|
});
|
|
}
|
|
}, bgaze_dur * 1000, (gaze_dur + bgaze_dur) * 1000); // initial delay, recall delay
|
|
// first gaze is after 2 bgaze durations, later gazes start after a bgaze
|
|
}
|
|
});
|
|
}
|
|
|
|
public void updateUI() {
|
|
Log.d(CLASS_TAG, cgaze + "/" + ngaze);
|
|
if (cgaze++ >= ngaze) {
|
|
txt_stats.setText("Finished :)");
|
|
new Handler().postDelayed(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
flipper.showPrevious();
|
|
}
|
|
});
|
|
}
|
|
}, gaze_dur * 1000);
|
|
timer.cancel();
|
|
return;
|
|
}
|
|
toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200);
|
|
|
|
// if (start_time < 0)
|
|
// start_time = System.currentTimeMillis();
|
|
// txt_stats.setText((System.currentTimeMillis()-start_time)/1000 + "");
|
|
txt_stats.setText("Gaze at Target #" + cgaze);
|
|
}
|
|
}
|