diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2013-09-10 10:35:57 +0100 |
---|---|---|
committer | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2013-09-10 10:35:57 +0100 |
commit | eb306b4c15d721c69255f02497d2bcebff0c265f (patch) | |
tree | a6bb52043653d300607e9496d104c00a77fa35f1 /src/com/android | |
parent | c184ed7683f3d56ca545ac91c15c747f5460addc (diff) | |
download | packages_apps_Settings-eb306b4c15d721c69255f02497d2bcebff0c265f.zip packages_apps_Settings-eb306b4c15d721c69255f02497d2bcebff0c265f.tar.gz packages_apps_Settings-eb306b4c15d721c69255f02497d2bcebff0c265f.tar.bz2 |
Fix for empty "Listen to an example" string.
Because of bug in previous TTS related change (bugfix for hiding
"Play TTS sample" if default language is not supported), settings
stopped to call getSampleText() when it was established that current
default language is supported.
This change makes sure that getSampleText() is always called if language
is supported.
Bug: 10672535
Change-Id: I83bf7056e12ddbe2322b6a3f04552802037626aa
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/settings/tts/TextToSpeechSettings.java | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java index 52ee4fd..0ff7f4f 100644 --- a/src/com/android/settings/tts/TextToSpeechSettings.java +++ b/src/com/android/settings/tts/TextToSpeechSettings.java @@ -104,7 +104,17 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements private TtsEngines mEnginesHelper = null; private String mSampleText = ""; + + /** + * Default locale used by selected TTS engine, null if not connected to any engine. + */ private Locale mCurrentDefaultLocale; + + /** + * List of available locals of selected TTS engine, as returned by + * {@link TextToSpeech.Engine#ACTION_CHECK_TTS_DATA} activity. If empty, then activity + * was not yet called. + */ private List<String> mAvailableStrLocals; /** @@ -263,7 +273,9 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements } private boolean evaluateDefaultLocale() { - if (mCurrentDefaultLocale == null) { + // Check if we are connected to the engine, and CHECK_VOICE_DATA returned list + // of available languages. + if (mCurrentDefaultLocale == null || mAvailableStrLocals == null) { return false; } int defaultAvailable = mTts.setLanguage(mCurrentDefaultLocale); @@ -277,18 +289,17 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements if (!TextUtils.isEmpty(mCurrentDefaultLocale.getVariant())) { defaultLocaleStr += "-" + mCurrentDefaultLocale.getVariant(); } - if (mAvailableStrLocals != null) { - for (String loc : mAvailableStrLocals) { - if (loc.equalsIgnoreCase(defaultLocaleStr)) { - notInAvailableLangauges = false; - break; - } + + for (String loc : mAvailableStrLocals) { + if (loc.equalsIgnoreCase(defaultLocaleStr)) { + notInAvailableLangauges = false; + break; } } if (defaultAvailable == TextToSpeech.LANG_NOT_SUPPORTED || defaultAvailable == TextToSpeech.LANG_MISSING_DATA || - mAvailableStrLocals == null || notInAvailableLangauges) { + notInAvailableLangauges) { if (DBG) Log.d(TAG, "Default locale for this TTS engine is not supported."); updateEngineStatus(R.string.tts_status_not_supported); updateWidgetState(false); @@ -557,8 +568,15 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements Settings.Secure.putString(getContentResolver(), TTS_DEFAULT_SYNTH, engine); mAvailableStrLocals = data.getStringArrayListExtra( - TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES); - evaluateDefaultLocale(); + TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES); + if (mAvailableStrLocals == null) { + Log.e(TAG, "Voice data check complete, but no available voices found"); + // Set mAvailableStrLocals to empty list + mAvailableStrLocals = new ArrayList<String>(); + } + if (evaluateDefaultLocale()) { + getSampleText(); + } final int engineCount = mEnginePreferenceCategory.getPreferenceCount(); for (int i = 0; i < engineCount; ++i) { |