gazesim/code/recording/util/GazeHelper/app/src/main/java/gazehelper/android/mmbrian/com/gazehelper/MainActivity.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);
}
}