diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-05-23 07:09:38 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-05-23 07:09:38 +0200 |
| commit | 111397fbb12bc6023dc067bf46db3fc3e5cf72e2 (patch) | |
| tree | 0ad8fc33d31f08818e27809fa7c27c0b57a4e4d2 | |
| parent | 8aa48609ebc63166b136e45b71b247683e67c27b (diff) | |
| download | cgeo-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.java | 19 |
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); |
