From fc9bc0e55d37ed8bb2207ef0be7c9e86f95ab0aa Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 27 Jul 2013 10:11:16 +0100 Subject: [PATCH] SpeechSynthesis.java: fix getAvailableVoices() on Android 4.3 --- .../src/com/reecedunn/espeak/SpeechSynthesis.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/android/src/com/reecedunn/espeak/SpeechSynthesis.java b/android/src/com/reecedunn/espeak/SpeechSynthesis.java index 965f45b1..8d3223f8 100644 --- a/android/src/com/reecedunn/espeak/SpeechSynthesis.java +++ b/android/src/com/reecedunn/espeak/SpeechSynthesis.java @@ -36,6 +36,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; public class SpeechSynthesis { private static final String TAG = SpeechSynthesis.class.getSimpleName(); @@ -163,9 +164,15 @@ public class SpeechSynthesis { } } - if (locale != null && !locale.getISO3Language().equals("")) { - final Voice voice = new Voice(name, identifier, gender, age, locale); - voices.add(voice); + try { + if (locale != null && !locale.getISO3Language().equals("")) { + 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. } }