Fix bug 1956707 in which setting the default language has no effect.
Use the current Locale upon initialization of the TTS engine.
Retrieve the default engine value from the TextToSpeech.Engine class
instead of a hard-coded value in TextToSpeechSettings.
diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index 88bfc67..789368a 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -58,8 +58,8 @@
private static final String LOCALE_DELIMITER = "-";
- // TODO move this to android.speech.tts.TextToSpeech.Engine
- private static final String FALLBACK_TTS_DEFAULT_SYNTH = "com.svox.pico";
+ private static final String FALLBACK_TTS_DEFAULT_SYNTH =
+ TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_SYNTH;
private Preference mPlayExample = null;
private Preference mInstallData = null;
@@ -280,6 +280,7 @@
Log.v(TAG, "Voice data check passed");
if (mTts == null) {
mTts = new TextToSpeech(this, this);
+ mTts.setLanguage(Locale.getDefault());
}
} else {
Log.v(TAG, "Voice data check failed");
@@ -319,6 +320,9 @@
Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, mDefaultLocVariant);
Log.v(TAG, "TTS default lang/country/variant set to "
+ mDefaultLanguage + "/" + mDefaultCountry + "/" + mDefaultLocVariant);
+ if (mTts != null) {
+ mTts.setLanguage(new Locale(mDefaultLanguage, mDefaultCountry));
+ }
}
return true;