From 50672b0d51f49f39ede2799168354250d8cb7c7e Mon Sep 17 00:00:00 2001 From: garwiz <> Date: Sun, 4 Sep 2016 15:07:34 +0200 Subject: [PATCH] Added optional region and variant params to TTS intent --- .../java/com/termux/api/TextToSpeechAPI.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/termux/api/TextToSpeechAPI.java b/app/src/main/java/com/termux/api/TextToSpeechAPI.java index 9dacaf81..4dc80c67 100644 --- a/app/src/main/java/com/termux/api/TextToSpeechAPI.java +++ b/app/src/main/java/com/termux/api/TextToSpeechAPI.java @@ -47,6 +47,8 @@ public void onDestroy() { @Override protected void onHandleIntent(final Intent intent) { final String speechLanguage = intent.getStringExtra("language"); + final String speechRegion = intent.getStringExtra("region"); + final String speechVariant = intent.getStringExtra("variant"); final String speechEngine = intent.getStringExtra("engine"); final float speechPitch = intent.getFloatExtra("pitch", 1.0f); @@ -148,7 +150,7 @@ public void onDone(String utteranceId) { }); if (speechLanguage != null) { - int setLanguageResult = mTts.setLanguage(new Locale(speechLanguage)); + int setLanguageResult = mTts.setLanguage(getLocale(speechLanguage, speechRegion, speechVariant)); if (setLanguageResult != TextToSpeech.LANG_AVAILABLE) { TermuxApiLogger.error("tts.setLanguage('" + speechLanguage + "') returned " + setLanguageResult); } @@ -187,4 +189,17 @@ public void onDone(String utteranceId) { } } + private static Locale getLocale(String language, String region, String variant) { + Locale result = null; + if (region != null) { + if (variant != null) { + result = new Locale(language, region, variant); + } else { + result = new Locale(language, region); + } + } else { + result = new Locale(language); + } + return result; + } }