getTtsLanguage: workaround NPE in >= Lollipop.

When there is no TTS engine selected, mTts.getVoice() will throw
a NullPointerException. This is a workaround to cope with this bug
in Android.
This commit is contained in:
Reece H. Dunn
2015-05-31 19:56:35 +01:00
parent 05b5837ff0
commit 135f852598
@@ -198,7 +198,14 @@ public class eSpeakActivity extends Activity {
private Locale getTtsLanguage() {
if (mTts != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
android.speech.tts.Voice voice = mTts.getVoice();
android.speech.tts.Voice voice = null;
try {
voice = mTts.getVoice();
} catch (NullPointerException e) {
// Android Lollipop and later may throw a NullPointerException
// if a voice is not selected.
return null;
}
if (voice != null) {
return voice.getLocale();
}