Browse Source

Avoid MissingResourceException on calls to getISO3CountryCode.

master
Reece H. Dunn 12 years ago
parent
commit
3d2d277a10

+ 7
- 2
android/src/com/reecedunn/espeak/SpeechSynthesis.java View File

@@ -166,13 +166,18 @@ public class SpeechSynthesis {

try {
if (locale != null && !locale.getISO3Language().equals("")) {
// This will throw a MissingResourceException on Android 4.3,
// so check here to avoid the exception in the Android
// TextToSpeech class.
String country = locale.getISO3Country();

final Voice voice = new Voice(name, identifier, gender, age, locale);
voices.add(voice);
}
} catch (MissingResourceException e) {
// Android 4.3 throws this exception if the 3-letter language
// code is missing for a locale (e.g. nci). Earlier versions
// of Android return an empty string.
// (e.g. nci) or country (e.g. 021) code is missing for a locale.
// Earlier versions of Android return an empty string.
}
}


+ 10
- 4
android/src/com/reecedunn/espeak/Voice.java View File

@@ -18,6 +18,7 @@
package com.reecedunn.espeak;

import java.util.Locale;
import java.util.MissingResourceException;

import android.speech.tts.TextToSpeech;

@@ -51,13 +52,18 @@ public class Voice {
public int match(Locale query) {
if (!locale.getISO3Language().equals(query.getISO3Language())) {
return TextToSpeech.LANG_NOT_SUPPORTED;
} else if (!locale.getISO3Country().equals(query.getISO3Country())) {
}
try {
if (!locale.getISO3Country().equals(query.getISO3Country())) {
return TextToSpeech.LANG_AVAILABLE;
}
} catch (MissingResourceException e) {
return TextToSpeech.LANG_AVAILABLE;
} else if (!locale.getVariant().equals(query.getVariant())) {
}
if (!locale.getVariant().equals(query.getVariant())) {
return TextToSpeech.LANG_COUNTRY_AVAILABLE;
} else {
return TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE;
}
return TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE;
}

@Override

Loading…
Cancel
Save