Browse Source

Fix the tests on Android Marshmallow.

master
Reece H. Dunn 9 years ago
parent
commit
7c8128cc12

+ 35
- 5
android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechTest.java View File

@@ -196,12 +196,42 @@ public class TextToSpeechTest extends TextToSpeechTestCase
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
- 0
android/src/com/reecedunn/espeak/TtsService.java View File

@@ -168,8 +168,17 @@ public class TtsService extends TextToSpeechService {
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;

Loading…
Cancel
Save