package com.uw.ictd.respeak;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.ImageButton;
import android.widget.ImageView;
public class RecordActivity extends MenuActivity {
private static final int REQUEST_CODE = 0;
private ImageView mRecorderPic;
private Button mRecordButton;
private ImageButton mRecordImageButton;
private Button mDoneButton;
private ImageButton mDoneImageButton;
private AudioRecorder mRecorder = new AudioRecorder();
private Chronometer mChronometer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
getActionBar().setDisplayHomeAsUpEnabled(true);
mRecorderPic = (ImageView) findViewById(R.id.recorderPic);
mRecordButton = (Button) findViewById(R.id.recordButton);
mRecordImageButton = (ImageButton) findViewById(R.id.recordImageButton);
mDoneButton = (Button) findViewById(R.id.doneButton);
mDoneImageButton = (ImageButton) findViewById(R.id.doneImageButton);
mChronometer = (Chronometer) findViewById(R.id.chronometer);
disableDoneButton();
// Starts recording
// TODO: start timer when you press record
OnClickListener recordListener = new OnClickListener(){
@Override
public void onClick(View v) {
mRecorder.startRecording();
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.start();
// Changes color of mic for API level 16 and above
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
mRecorderPic.setImageResource(R.drawable.red_mic);
}
disableRecordButton();
enableDoneButton();
}
};
mRecordButton.setOnClickListener(recordListener);
mRecordImageButton.setOnClickListener(recordListener);
// Stops recording
// TODO: stop timer when you press record
OnClickListener doneListener = new OnClickListener(){
@Override
public void onClick(View v) {
if (mRecorder != null) {
mRecorder.stopRecording();
mChronometer.stop();
// Changes color of mic for API level 16 and above
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
mRecorderPic.setImageResource(R.drawable.blue_mic);
}
disableDoneButton();
enableRecordButton();
Intent i = new Intent(RecordActivity.this, SubmissionActivity.class);
i.putExtra(SubmissionActivity.EXTRA_RECORDED_FILE_NAME, mRecorder.getFileName());
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
i.putExtras(bundle);
}
startActivityForResult(i, REQUEST_CODE);
}
}
};
mDoneButton.setOnClickListener(doneListener);
mDoneImageButton.setOnClickListener(doneListener);
}
private void disableDoneButton() {
mDoneButton.setEnabled(false);
mDoneButton.setTextColor(getResources().getColor(R.color.light_gray));
mDoneImageButton.setEnabled(false);
mDoneImageButton.setBackgroundResource(R.drawable.done_gray);
}
private void enableDoneButton() {
mDoneButton.setEnabled(true);
mDoneButton.setTextColor(getResources().getColor(R.color.light_blue));
mDoneImageButton.setEnabled(true);
mDoneImageButton.setBackgroundResource(R.drawable.done_black);
}
private void disableRecordButton() {
mRecordButton.setEnabled(false);
mRecordButton.setTextColor(getResources().getColor(R.color.light_gray));
mRecordImageButton.setEnabled(false);
mRecordImageButton.setBackgroundResource(R.drawable.record_gray);
}
private void enableRecordButton() {
mRecordButton.setEnabled(true);
mRecordButton.setTextColor(getResources().getColor(R.color.light_blue));
mRecordImageButton.setEnabled(true);
mRecordImageButton.setBackgroundResource(R.drawable.record);
}
@Override
public void onPause() {
super.onPause();
mRecorder.stopRecording();
}
}