Skip to content

Commit

Permalink
Fix the tests on Android Marshmallow.
Browse files Browse the repository at this point in the history
  • Loading branch information
rhdunn committed Oct 10, 2015
1 parent 059f881 commit 7c8128c
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,12 +196,42 @@ public void testLanguages()
final Locale java3 = new Locale(data.javaLanguage, "VUT", data.variant);

checkLanguage(data, iana1, TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE, data.javaLanguage, data.javaCountry, data.variant);
checkLanguage(data, iana2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
checkLanguage(data, iana3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");

checkLanguage(data, java1, TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE, data.javaLanguage, data.javaCountry, data.variant);
checkLanguage(data, java2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
checkLanguage(data, java3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
// Android Lollipop sets variant to "" when TextToSpeech.LANG_COUNTRY_AVAILABLE is returned.
checkLanguage(data, iana2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
checkLanguage(data, java2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
} else {
if (data.ianaLanguage.equals("vi") && data.ianaCountry.equals("VN")) {
checkLanguage(data, iana2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "hue");
checkLanguage(data, java2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "hue");
} else {
checkLanguage(data, iana2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
checkLanguage(data, java2, TextToSpeech.LANG_COUNTRY_AVAILABLE, data.javaLanguage, data.javaCountry, "");
}
}

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
// Android Lollipop sets country and variant to "" when TextToSpeech.LANG_AVAILABLE is returned.
checkLanguage(data, iana3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");
checkLanguage(data, java3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");
} else {
switch (data.ianaLanguage) {
case "fr":
checkLanguage(data, iana3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "FRA", "");
checkLanguage(data, java3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "FRA", "");
break;
case "pt":
checkLanguage(data, iana3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "PRT", "");
checkLanguage(data, java3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "PRT", "");
break;
default:
checkLanguage(data, iana3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");
checkLanguage(data, java3, TextToSpeech.LANG_AVAILABLE, data.javaLanguage, "", "");
break;
}
}
}
}
}
9 changes: 9 additions & 0 deletions android/src/com/reecedunn/espeak/TtsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,17 @@ private Pair<Voice, Integer> getDefaultVoiceFor(String language, String country,
final Pair<Voice, Integer> match = findVoice(language, country, variant);
switch (match.second) {
case TextToSpeech.LANG_AVAILABLE:
if (language.equals("fr") || language.equals("fra")) {
return new Pair<>(findVoice(language, "FRA", "").first, match.second);
}
if (language.equals("pt") || language.equals("por")) {
return new Pair<>(findVoice(language, "PRT", "").first, match.second);
}
return new Pair<>(findVoice(language, "", "").first, match.second);
case TextToSpeech.LANG_COUNTRY_AVAILABLE:
if ((language.equals("vi") || language.equals("vie")) && (country.equals("VN") || country.equals("VNM"))) {
return new Pair<>(findVoice(language, country, "hue").first, match.second);
}
return new Pair<>(findVoice(language, country, "").first, match.second);
default:
return match;
Expand Down

0 comments on commit 7c8128c

Please sign in to comment.