| @@ -27,6 +27,7 @@ import android.os.Bundle; | |||
| import android.os.Handler; | |||
| import android.os.Message; | |||
| import android.speech.tts.TextToSpeech; | |||
| import android.util.Log; | |||
| import android.view.View; | |||
| import android.widget.TextView; | |||
| @@ -47,6 +48,8 @@ public class eSpeakActivity extends Activity { | |||
| private static final int DIALOG_DOWNLOAD_FAILED = 2; | |||
| private static final int DIALOG_ERROR = 3; | |||
| private static final String TAG = "eSpeakActivity"; | |||
| private enum State { | |||
| LOADING, | |||
| FAILURE, | |||
| @@ -137,6 +140,7 @@ public class eSpeakActivity extends Activity { | |||
| private void onDataChecked(int resultCode, Intent data) { | |||
| if (resultCode != TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { | |||
| if (mDownloadedVoiceData) { | |||
| Log.e(TAG, "Voice data check failed (error code: " + resultCode + ")."); | |||
| setState(State.FAILURE); | |||
| showDialog(DIALOG_ERROR); | |||
| } else { | |||
| @@ -147,7 +151,17 @@ public class eSpeakActivity extends Activity { | |||
| mVoices = data.getStringArrayListExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES); | |||
| if (mVoices == null) { | |||
| Log.e(TAG, "Data check failed -- voices is null."); | |||
| setState(State.FAILURE); | |||
| showDialog(DIALOG_ERROR); | |||
| return; | |||
| } | |||
| initializeEngine(); | |||
| final TextView availableVoices = (TextView) findViewById(R.id.availableVoices); | |||
| availableVoices.setText(Integer.toString(mVoices.size())); | |||
| } | |||
| /** | |||
| @@ -158,6 +172,7 @@ public class eSpeakActivity extends Activity { | |||
| */ | |||
| private void onDataDownloaded(int resultCode) { | |||
| if (resultCode != RESULT_OK) { | |||
| Log.e(TAG, "Voice data download failed."); | |||
| setState(State.FAILURE); | |||
| showDialog(DIALOG_DOWNLOAD_FAILED); | |||
| return; | |||
| @@ -180,7 +195,8 @@ public class eSpeakActivity extends Activity { | |||
| return; | |||
| } | |||
| if (status == TextToSpeech.ERROR || mVoices == null) { | |||
| if (status == TextToSpeech.ERROR) { | |||
| Log.e(TAG, "Initialization failed (status: " + status + ")."); | |||
| setState(State.FAILURE); | |||
| showDialog(DIALOG_ERROR); | |||
| return; | |||
| @@ -189,9 +205,6 @@ public class eSpeakActivity extends Activity { | |||
| final TextView currentLocale = (TextView) findViewById(R.id.currentLocale); | |||
| currentLocale.setText(mTts.getLanguage().getDisplayName()); | |||
| final TextView availableVoices = (TextView) findViewById(R.id.availableVoices); | |||
| availableVoices.setText(Integer.toString(mVoices.size())); | |||
| findViewById(R.id.updateVoices).setOnClickListener(mOnClickListener); | |||
| findViewById(R.id.ttsSettings).setOnClickListener(mOnClickListener); | |||
| findViewById(R.id.engineSettings).setOnClickListener(mOnClickListener); | |||