From de1b5ae7a7567f03cfeecf1a62ddf429cb840474 Mon Sep 17 00:00:00 2001 From: Przemyslaw Szczepaniak Date: Mon, 12 May 2014 15:21:52 +0100 Subject: [PATCH] Add (hidden) TTSEngines#isLocaleSetToDefaultForEngine method. TTSEngines#isLocaleSetToDefaultForEngine allows the Settings application to distinguish if the TTS engine locale is blank (set to follow the device locale) or if it's set to the same value as the device locale. Change-Id: I462584547d69c21cde4ac317c8a3b3bbc1680cae --- core/java/android/speech/tts/TtsEngines.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/java/android/speech/tts/TtsEngines.java b/core/java/android/speech/tts/TtsEngines.java index 4f996cd7b91e6..9b929a30d6223 100644 --- a/core/java/android/speech/tts/TtsEngines.java +++ b/core/java/android/speech/tts/TtsEngines.java @@ -306,6 +306,24 @@ public class TtsEngines { return locale; } + /** + * True if a given TTS engine uses the default phone locale as a default locale. Attempts to + * read the value from {@link Settings.Secure#TTS_DEFAULT_LOCALE}, failing which the + * old style value from {@link Settings.Secure#TTS_DEFAULT_LANG} is read. If + * both these values are empty, this methods returns true. + * + * @param engineName the engine to return the locale for. + */ + public boolean isLocaleSetToDefaultForEngine(String engineName) { + return (TextUtils.isEmpty(parseEnginePrefFromList( + getString(mContext.getContentResolver(), Settings.Secure.TTS_DEFAULT_LOCALE), + engineName)) && + TextUtils.isEmpty( + Settings.Secure.getString(mContext.getContentResolver(), + Settings.Secure.TTS_DEFAULT_LANG))); + } + + /** * Parses a locale preference value delimited by {@link #LOCALE_DELIMITER}. * Varies from {@link String#split} in that it will always return an array