Loading res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -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 --> Loading src/com/android/settings/tts/TtsEngineSettingsFragment.java +21 −22 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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()); Loading Loading @@ -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; } Loading Loading @@ -355,18 +354,18 @@ 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); } if (getEngineName().equals(mTts.getCurrentEngine())) { 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()); } } } Loading Loading
res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -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 --> Loading
src/com/android/settings/tts/TtsEngineSettingsFragment.java +21 −22 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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()); Loading Loading @@ -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; } Loading Loading @@ -355,18 +354,18 @@ 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); } if (getEngineName().equals(mTts.getCurrentEngine())) { 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()); } } } Loading