Normalize TTS default locale before #toDisplayString
TTS is... special in regard of Locale instances it uses.
Recently ISO-3166 alpha 3 country codes went out of spec, so
"English (GBR)".
Bug: 15741357
Change-Id: I022105acad9d319d5e09231be340405d797c84c4
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index d3f9c7b..8417cfd 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -268,7 +268,9 @@
return;
}
- mCurrentDefaultLocale = defaultLocale;
+ // ISO-3166 alpha 3 country codes are out of spec. If we won't normalize,
+ // we may end up with English (USA)and German (DEU).
+ mCurrentDefaultLocale = mEnginesHelper.parseLocaleString(defaultLocale.toString());
int defaultAvailable = mTts.setLanguage(defaultLocale);
if (evaluateDefaultLocale()) {