aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-05-23 07:09:38 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-05-23 07:09:38 +0200
commit111397fbb12bc6023dc067bf46db3fc3e5cf72e2 (patch)
tree0ad8fc33d31f08818e27809fa7c27c0b57a4e4d2
parent8aa48609ebc63166b136e45b71b247683e67c27b (diff)
downloadcgeo-111397fbb12bc6023dc067bf46db3fc3e5cf72e2.zip
cgeo-111397fbb12bc6023dc067bf46db3fc3e5cf72e2.tar.gz
cgeo-111397fbb12bc6023dc067bf46db3fc3e5cf72e2.tar.bz2
new: check TTS data availability when starting speech
-rw-r--r--main/src/cgeo/geocaching/CompassActivity.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java
index d0f980e..9e20e9c 100644
--- a/main/src/cgeo/geocaching/CompassActivity.java
+++ b/main/src/cgeo/geocaching/CompassActivity.java
@@ -16,6 +16,7 @@ import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
+import android.speech.tts.TextToSpeech.Engine;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
@@ -34,6 +35,7 @@ public class CompassActivity extends AbstractActivity {
private static final String EXTRAS_CACHE_INFO = "cacheinfo";
private static final List<IWaypoint> coordinates = new ArrayList<IWaypoint>();
private static final int COORDINATES_OFFSET = 10;
+ private static final int REQUEST_TTS_DATA_CHECK = 1;
private Geopoint dstCoords = null;
private float cacheHeading = 0;
private String title = null;
@@ -160,7 +162,7 @@ public class CompassActivity extends AbstractActivity {
finish();
return true;
case R.id.menu_tts_start:
- SpeechService.startService(this, dstCoords);
+ initTextToSpeech();
return true;
case R.id.menu_tts_stop:
SpeechService.stopService(this);
@@ -183,6 +185,21 @@ public class CompassActivity extends AbstractActivity {
return false;
}
+ private void initTextToSpeech() {
+ Intent intent = new Intent(Engine.ACTION_CHECK_TTS_DATA);
+ startActivityForResult(intent, REQUEST_TTS_DATA_CHECK);
+ }
+
+ @Override
+ protected void onActivityResult(int request, int result, Intent data) {
+ if (request == REQUEST_TTS_DATA_CHECK && result == Engine.CHECK_VOICE_DATA_PASS) {
+ SpeechService.startService(this, dstCoords);
+ }
+ else {
+ startActivity(new Intent(Engine.ACTION_INSTALL_TTS_DATA));
+ }
+ }
+
private void setTitle() {
if (StringUtils.isNotBlank(title)) {
setTitle(title);