summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/tts
diff options
context:
space:
mode:
authorPrzemyslaw Szczepaniak <pszczepaniak@google.com>2014-03-13 23:12:10 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-13 23:12:10 +0000
commitcc91f6ff662dbac9ae78c4b68c94e3210c4c876a (patch)
tree1b252b6495e62dae7a3210cfbc19b2c41c13d41f /src/com/android/settings/tts
parent7e74b409aabaf5d69b770ba18d75fdedc14b1b26 (diff)
parent7a5911a96d158567bac1e892aee813af1b563a46 (diff)
downloadpackages_apps_Settings-cc91f6ff662dbac9ae78c4b68c94e3210c4c876a.zip
packages_apps_Settings-cc91f6ff662dbac9ae78c4b68c94e3210c4c876a.tar.gz
packages_apps_Settings-cc91f6ff662dbac9ae78c4b68c94e3210c4c876a.tar.bz2
am 7a5911a9: am 375545e2: am 6829c48c: Merge "Fix F/C in TTS settings"
* commit '7a5911a96d158567bac1e892aee813af1b563a46': Fix F/C in TTS settings
Diffstat (limited to 'src/com/android/settings/tts')
-rw-r--r--src/com/android/settings/tts/TextToSpeechSettings.java58
1 files changed, 35 insertions, 23 deletions
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index a3003e8..1d4fe71 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -45,6 +45,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
+import java.util.MissingResourceException;
import java.util.Set;
public class TextToSpeechSettings extends SettingsPreferenceFragment implements
@@ -277,25 +278,32 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
if (mCurrentDefaultLocale == null || mAvailableStrLocals == null) {
return false;
}
- int defaultAvailable = mTts.setLanguage(mCurrentDefaultLocale);
- // Check if language is listed in CheckVoices Action result as available voice.
- String defaultLocaleStr = mCurrentDefaultLocale.getISO3Language();
boolean notInAvailableLangauges = true;
- if (!TextUtils.isEmpty(mCurrentDefaultLocale.getISO3Country())) {
- defaultLocaleStr += "-" + mCurrentDefaultLocale.getISO3Country();
- }
- if (!TextUtils.isEmpty(mCurrentDefaultLocale.getVariant())) {
- defaultLocaleStr += "-" + mCurrentDefaultLocale.getVariant();
- }
+ try {
+ // Check if language is listed in CheckVoices Action result as available voice.
+ String defaultLocaleStr = mCurrentDefaultLocale.getISO3Language();
+ if (!TextUtils.isEmpty(mCurrentDefaultLocale.getISO3Country())) {
+ defaultLocaleStr += "-" + mCurrentDefaultLocale.getISO3Country();
+ }
+ if (!TextUtils.isEmpty(mCurrentDefaultLocale.getVariant())) {
+ defaultLocaleStr += "-" + mCurrentDefaultLocale.getVariant();
+ }
- for (String loc : mAvailableStrLocals) {
- if (loc.equalsIgnoreCase(defaultLocaleStr)) {
- notInAvailableLangauges = false;
- break;
+ for (String loc : mAvailableStrLocals) {
+ if (loc.equalsIgnoreCase(defaultLocaleStr)) {
+ notInAvailableLangauges = false;
+ break;
+ }
}
+ } catch (MissingResourceException e) {
+ if (DBG) Log.wtf(TAG, "MissingResourceException", e);
+ updateEngineStatus(R.string.tts_status_not_supported);
+ updateWidgetState(false);
+ return false;
}
+ int defaultAvailable = mTts.setLanguage(mCurrentDefaultLocale);
if (defaultAvailable == TextToSpeech.LANG_NOT_SUPPORTED ||
defaultAvailable == TextToSpeech.LANG_MISSING_DATA ||
notInAvailableLangauges) {
@@ -314,7 +322,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
}
}
-
/**
* Ask the current default engine to return a string of sample text to be
* spoken to the user.
@@ -357,16 +364,21 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
private String getDefaultSampleString() {
if (mTts != null && mTts.getLanguage() != null) {
- final String currentLang = mTts.getLanguage().getISO3Language();
- String[] strings = getActivity().getResources().getStringArray(
- R.array.tts_demo_strings);
- String[] langs = getActivity().getResources().getStringArray(
- R.array.tts_demo_string_langs);
-
- for (int i = 0; i < strings.length; ++i) {
- if (langs[i].equals(currentLang)) {
- return strings[i];
+ try {
+ final String currentLang = mTts.getLanguage().getISO3Language();
+ String[] strings = getActivity().getResources().getStringArray(
+ R.array.tts_demo_strings);
+ String[] langs = getActivity().getResources().getStringArray(
+ R.array.tts_demo_string_langs);
+
+ for (int i = 0; i < strings.length; ++i) {
+ if (langs[i].equals(currentLang)) {
+ return strings[i];
+ }
}
+ } catch (MissingResourceException e) {
+ if (DBG) Log.wtf(TAG, "MissingResourceException", e);
+ // Ignore and fall back to default sample string
}
}
return getString(R.string.tts_default_sample_string);