diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java index 84b14a191a5..89a46419819 100644 --- a/src/com/android/settings/TextToSpeechSettings.java +++ b/src/com/android/settings/TextToSpeechSettings.java @@ -408,7 +408,17 @@ public class TextToSpeechSettings extends PreferenceActivity implements (ListPreference) findPreference("tts_default_lang"); CharSequence[] entries = new CharSequence[available.size()]; CharSequence[] entryValues = new CharSequence[available.size()]; - for (int i=0; i 0) { + selectedLanguagePref = selectedLanguagePref + LOCALE_DELIMITER + + mDefaultCountry; + } + if (mDefaultLocVariant.length() > 0) { + selectedLanguagePref = selectedLanguagePref + LOCALE_DELIMITER + + mDefaultLocVariant; + } + for (int i = 0; i < available.size(); i++) { String[] langCountryVariant = available.get(i).split("-"); Locale loc = null; if (langCountryVariant.length == 1){ @@ -422,10 +432,16 @@ public class TextToSpeechSettings extends PreferenceActivity implements if (loc != null){ entries[i] = loc.getDisplayName(); entryValues[i] = available.get(i); + if (entryValues[i].equals(selectedLanguagePref)) { + selectedLanguageIndex = i; + } } } ttsLanguagePref.setEntries(entries); ttsLanguagePref.setEntryValues(entryValues); + if (selectedLanguageIndex > -1) { + ttsLanguagePref.setValueIndex(selectedLanguageIndex); + } mEnableDemo = true; // Make sure that the default language can be used. int languageResult = mTts.setLanguage( @@ -653,8 +669,20 @@ public class TextToSpeechSettings extends PreferenceActivity implements * Returns whether there is a default language in the TTS settings. */ private boolean hasLangPref() { - String language = Settings.Secure.getString(getContentResolver(), TTS_DEFAULT_LANG); - return (language != null); + ContentResolver resolver = getContentResolver(); + String language = Settings.Secure.getString(resolver, TTS_DEFAULT_LANG); + if ((language == null) || (language.length() < 1)) { + return false; + } + String country = Settings.Secure.getString(resolver, TTS_DEFAULT_COUNTRY); + if (country == null) { + return false; + } + String variant = Settings.Secure.getString(resolver, TTS_DEFAULT_VARIANT); + if (variant == null) { + return false; + } + return true; } /**