diff options
| author | Charles Chen <clchen@google.com> | 2010-03-01 18:52:41 -0800 |
|---|---|---|
| committer | Charles Chen <clchen@google.com> | 2010-03-01 18:52:41 -0800 |
| commit | 6a8b73be572f37b471322e7d49b44c3783633d96 (patch) | |
| tree | a5c11a7c81dd8a01e97690ee7614c5c191896f2c | |
| parent | 5d3bea6229c2ba71e87c750204662ee71a01c2dd (diff) | |
| download | frameworks_base-6a8b73be572f37b471322e7d49b44c3783633d96.zip frameworks_base-6a8b73be572f37b471322e7d49b44c3783633d96.tar.gz frameworks_base-6a8b73be572f37b471322e7d49b44c3783633d96.tar.bz2 | |
Fixing a bug with TTS that caused TTS to ignore the default settings
unless the user had set the defaults to always override app settings.
| -rwxr-xr-x | core/java/android/speech/tts/TextToSpeech.java | 16 | ||||
| -rwxr-xr-x | packages/TtsService/src/android/tts/TtsService.java | 17 |
2 files changed, 25 insertions, 8 deletions
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java index 0db2198..9e04cf8 100755 --- a/core/java/android/speech/tts/TextToSpeech.java +++ b/core/java/android/speech/tts/TextToSpeech.java @@ -410,17 +410,17 @@ public class TextToSpeech { mCachedParams[Engine.PARAM_POSITION_UTTERANCE_ID] = Engine.KEY_PARAM_UTTERANCE_ID; mCachedParams[Engine.PARAM_POSITION_ENGINE] = Engine.KEY_PARAM_ENGINE; - mCachedParams[Engine.PARAM_POSITION_RATE + 1] = - String.valueOf(Engine.DEFAULT_RATE); - // initialize the language cached parameters with the current Locale - Locale defaultLoc = Locale.getDefault(); - mCachedParams[Engine.PARAM_POSITION_LANGUAGE + 1] = defaultLoc.getISO3Language(); - mCachedParams[Engine.PARAM_POSITION_COUNTRY + 1] = defaultLoc.getISO3Country(); - mCachedParams[Engine.PARAM_POSITION_VARIANT + 1] = defaultLoc.getVariant(); + // Leave all defaults that are shown in Settings uninitialized so that + // the values set in Settings will take effect if the application does + // not try to change these settings itself. + mCachedParams[Engine.PARAM_POSITION_RATE + 1] = ""; + mCachedParams[Engine.PARAM_POSITION_LANGUAGE + 1] = ""; + mCachedParams[Engine.PARAM_POSITION_COUNTRY + 1] = ""; + mCachedParams[Engine.PARAM_POSITION_VARIANT + 1] = ""; mCachedParams[Engine.PARAM_POSITION_STREAM + 1] = String.valueOf(Engine.DEFAULT_STREAM); mCachedParams[Engine.PARAM_POSITION_UTTERANCE_ID + 1] = ""; - mCachedParams[Engine.PARAM_POSITION_ENGINE + 1] = Engine.DEFAULT_SYNTH; + mCachedParams[Engine.PARAM_POSITION_ENGINE + 1] = ""; initTts(); } diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java index c0e4cc0..7f76425 100755 --- a/packages/TtsService/src/android/tts/TtsService.java +++ b/packages/TtsService/src/android/tts/TtsService.java @@ -206,6 +206,9 @@ public class TtsService extends Service implements OnCompletionListener { private int setEngine(String enginePackageName) { String soFilename = ""; + if (isDefaultEnforced()) { + enginePackageName = getDefaultEngine(); + } // The SVOX TTS is an exception to how the TTS packaging scheme works // because it is part of the system and not a 3rd party add-on; thus // its binary is actually located under /system/lib/ @@ -779,12 +782,19 @@ public class TtsService extends Service implements OnCompletionListener { if (mKillList.get(speechItem) == null) { if (engine.length() > 0) { setEngine(engine); + } else { + setEngine(getDefaultEngine()); } if (language.length() > 0){ setLanguage("", language, country, variant); + } else { + setLanguage("", getDefaultLanguage(), getDefaultCountry(), + getDefaultLocVariant()); } if (speechRate.length() > 0){ setSpeechRate("", Integer.parseInt(speechRate)); + } else { + setSpeechRate("", getDefaultRate()); } try { sNativeSynth.speak(speechItem.mText, streamType); @@ -864,12 +874,19 @@ public class TtsService extends Service implements OnCompletionListener { if (mKillList.get(speechItem) == null){ if (engine.length() > 0) { setEngine(engine); + } else { + setEngine(getDefaultEngine()); } if (language.length() > 0){ setLanguage("", language, country, variant); + } else { + setLanguage("", getDefaultLanguage(), getDefaultCountry(), + getDefaultLocVariant()); } if (speechRate.length() > 0){ setSpeechRate("", Integer.parseInt(speechRate)); + } else { + setSpeechRate("", getDefaultRate()); } try { sNativeSynth.synthesizeToFile(speechItem.mText, speechItem.mFilename); |
