diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2014-05-13 09:53:16 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-13 09:53:17 +0000 |
commit | abf3886ed964d4a80d6d805c74d69a242766aad9 (patch) | |
tree | 25315eecfe9f7b566164a94dd00970b96d74f539 | |
parent | eab58139f493698adbe0ecb7ed5ac4cf2ed51e1f (diff) | |
parent | 098b4a7eb795e403c2ccb7c1b585105c525761fc (diff) | |
download | packages_apps_Settings-abf3886ed964d4a80d6d805c74d69a242766aad9.zip packages_apps_Settings-abf3886ed964d4a80d6d805c74d69a242766aad9.tar.gz packages_apps_Settings-abf3886ed964d4a80d6d805c74d69a242766aad9.tar.bz2 |
Merge "Add explicit "use system language" TTS language."
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/com/android/settings/tts/TtsEngineSettingsFragment.java | 43 |
2 files changed, 23 insertions, 22 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index 06f89bf..fd3922c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3887,6 +3887,8 @@ <!-- On main TTS Settings screen, in default settings section, setting default language for synthesized voice --> <string name="tts_default_lang_title">Language</string> + <!-- Entry in the TTS engine language/locale picker, when selected will try to default to the system language [CHAR LIMIT=50] --> + <string name="tts_lang_use_system">Use system language</string> <!-- On main TTS Settings screen, language summary if it can't default to system language [CHAR LIMIT=50] --> <string name="tts_lang_not_selected">Language not selected</string> <!-- On main TTS Settings screen, summary for default language for synthesized voice --> diff --git a/src/com/android/settings/tts/TtsEngineSettingsFragment.java b/src/com/android/settings/tts/TtsEngineSettingsFragment.java index f6314dd..47493fb 100644 --- a/src/com/android/settings/tts/TtsEngineSettingsFragment.java +++ b/src/com/android/settings/tts/TtsEngineSettingsFragment.java @@ -68,7 +68,6 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem private TextToSpeech mTts; private int mSelectedLocaleIndex = -1; - private int mSystemLocaleIndex = -1; private final TextToSpeech.OnInitListener mTtsInitListener = new TextToSpeech.OnInitListener() { @Override @@ -234,8 +233,10 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem mLocalePreference.setEnabled(false); return; } - String currentLocale = mEnginesHelper.getLocalePrefForEngine( - getEngineName()); + String currentLocale = ""; + if (!mEnginesHelper.isLocaleSetToDefaultForEngine(getEngineName())) { + currentLocale = mEnginesHelper.getLocalePrefForEngine(getEngineName()); + } ArrayList<Pair<String, String>> entryPairs = new ArrayList<Pair<String, String>>(availableLangs.size()); @@ -264,21 +265,19 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem } }); - String defaultLocaleStr = mEnginesHelper.getDefaultLocale(); - // Get two arrays out of one of pairs - mSelectedLocaleIndex = -1; - mSystemLocaleIndex = -1; - CharSequence[] entries = new CharSequence[availableLangs.size()]; - CharSequence[] entryValues = new CharSequence[availableLangs.size()]; - int i = 0; + mSelectedLocaleIndex = 0; // Will point to the R.string.tts_lang_use_system value + CharSequence[] entries = new CharSequence[availableLangs.size()+1]; + CharSequence[] entryValues = new CharSequence[availableLangs.size()+1]; + + entries[0] = getActivity().getString(R.string.tts_lang_use_system); + entryValues[0] = ""; + + int i = 1; for (Pair<String, String> entry : entryPairs) { if (entry.second.equalsIgnoreCase(currentLocale)) { mSelectedLocaleIndex = i; } - if (entry.second.equalsIgnoreCase(defaultLocaleStr)) { - mSystemLocaleIndex = i; - } entries[i] = entry.first; entryValues[i++] = entry.second; } @@ -355,17 +354,17 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem mLocalePreference.setSummary(mLocalePreference.getEntries()[selectedLocaleIndex]); mSelectedLocaleIndex = selectedLocaleIndex; - if (mSelectedLocaleIndex == mSystemLocaleIndex) { - // Use empty locale, it will default to the system language - mEnginesHelper.updateLocalePrefForEngine(getEngineName(), ""); - } else { - mEnginesHelper.updateLocalePrefForEngine(getEngineName(), locale); - } + mEnginesHelper.updateLocalePrefForEngine(getEngineName(), locale); if (getEngineName().equals(mTts.getCurrentEngine())) { - String[] localeArray = TtsEngines.parseLocalePref(locale); - if (localeArray != null) { - mTts.setLanguage(new Locale(localeArray[0], localeArray[1], localeArray[2])); + if (!locale.isEmpty()) { + String[] localeArray = TtsEngines.parseLocalePref(locale); + if (localeArray != null) { + mTts.setLanguage(new Locale(localeArray[0], localeArray[1], localeArray[2])); + } + } else { + // Empty locale means "use system default" + mTts.setLanguage(Locale.getDefault()); } } } |