diff --git a/android/src/com/reecedunn/espeak/eSpeakActivity.java b/android/src/com/reecedunn/espeak/eSpeakActivity.java index 1c5aa158..cdd0b520 100644 --- a/android/src/com/reecedunn/espeak/eSpeakActivity.java +++ b/android/src/com/reecedunn/espeak/eSpeakActivity.java @@ -18,7 +18,10 @@ package com.reecedunn.espeak; import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -46,7 +49,6 @@ public class eSpeakActivity extends Activity { private static final int TTS_INITIALIZED = 1; private static final int REQUEST_CHECK = 1; - private static final int REQUEST_DOWNLOAD = 2; private static final int REQUEST_DEFAULT = 3; private static final String TAG = "eSpeakActivity"; @@ -169,9 +171,11 @@ public class eSpeakActivity extends Activity { * Launches the voice data installer. */ private void downloadVoiceData() { - final Intent checkIntent = new Intent(this, DownloadVoiceData.class); + final IntentFilter filter = new IntentFilter(DownloadVoiceData.BROADCAST_LANGUAGES_UPDATED); + registerReceiver(mDownloadReceiver, filter); - startActivityForResult(checkIntent, REQUEST_DOWNLOAD); + final Intent checkIntent = new Intent(this, DownloadVoiceData.class); + startActivity(checkIntent); } /** @@ -252,24 +256,6 @@ public class eSpeakActivity extends Activity { populateInformationView(); } - /** - * Handles the result of voice data installation. Either shows a failure - * dialog or launches the voice data verifier. - * - * @param resultCode - */ - private void onDataDownloaded(int resultCode) { - if (resultCode != RESULT_OK) { - Log.e(TAG, "Voice data download failed."); - setState(State.DOWNLOAD_FAILED); - return; - } - - mDownloadedVoiceData = true; - - checkVoiceData(); - } - /** * Handles the result of TTS engine initialization. Either displays an error * dialog or populates the activity's UI. @@ -293,9 +279,6 @@ public class eSpeakActivity extends Activity { case REQUEST_CHECK: onDataChecked(resultCode, data); break; - case REQUEST_DOWNLOAD: - onDataDownloaded(resultCode); - break; case REQUEST_DEFAULT: initializeEngine(); break; @@ -346,4 +329,12 @@ public class eSpeakActivity extends Activity { } startActivityForResult(intent, REQUEST_DEFAULT); } + + private final BroadcastReceiver mDownloadReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mDownloadedVoiceData = true; + checkVoiceData(); + } + }; }