summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Narayan Kamath <narayan@google.com> 2011-06-03 04:34:45 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-06-03 04:34:45 -0700
commit4b1b27a798ff28d189549af887a89391e5e3f56c (patch)
tree1dc3feb1e9792758951a5103bc48dd17fd17347a
parentb2450ce105086d1ac82d273a5292d9581c6ddec4 (diff)
parent7a3af86dc03a45280ceca6154040577f614c571e (diff)
Merge "Language loading / availablity should repsect defaults enforcement."
-rw-r--r--core/java/android/speech/tts/TextToSpeechService.java31
1 files changed, 30 insertions, 1 deletions
diff --git a/core/java/android/speech/tts/TextToSpeechService.java b/core/java/android/speech/tts/TextToSpeechService.java
index 717dde8c3e71..ddd32521891d 100644
--- a/core/java/android/speech/tts/TextToSpeechService.java
+++ b/core/java/android/speech/tts/TextToSpeechService.java
@@ -55,6 +55,8 @@ public abstract class TextToSpeechService extends Service {
private CallbackMap mCallbacks;
+ private int mDefaultAvailability = TextToSpeech.LANG_NOT_SUPPORTED;
+
@Override
public void onCreate() {
if (DBG) Log.d(TAG, "onCreate()");
@@ -71,7 +73,8 @@ public abstract class TextToSpeechService extends Service {
mCallbacks = new CallbackMap();
// Load default language
- onLoadLanguage(getDefaultLanguage(), getDefaultCountry(), getDefaultVariant());
+ mDefaultAvailability = onLoadLanguage(getDefaultLanguage(),
+ getDefaultCountry(), getDefaultVariant());
}
@Override
@@ -651,17 +654,43 @@ public abstract class TextToSpeechService extends Service {
return onGetLanguage();
}
+ /*
+ * If defaults are enforced, then no language is "available" except
+ * perhaps the default language selected by the user.
+ */
public int isLanguageAvailable(String lang, String country, String variant) {
+ if (areDefaultsEnforced()) {
+ if (isDefault(lang, country, variant)) {
+ return mDefaultAvailability;
+ } else {
+ return TextToSpeech.LANG_NOT_SUPPORTED;
+ }
+ }
return onIsLanguageAvailable(lang, country, variant);
}
+ /*
+ * There is no point loading a non default language if defaults
+ * are enforced.
+ */
public int loadLanguage(String lang, String country, String variant) {
+ if (areDefaultsEnforced()) {
+ if (isDefault(lang, country, variant)) {
+ return mDefaultAvailability;
+ } else {
+ return TextToSpeech.LANG_NOT_SUPPORTED;
+ }
+ }
return onLoadLanguage(lang, country, variant);
}
public void setCallback(String packageName, ITextToSpeechCallback cb) {
mCallbacks.setCallback(packageName, cb);
}
+
+ private boolean isDefault(String lang, String country, String variant) {
+ return Locale.getDefault().equals(new Locale(lang, country, variant));
+ }
};
private class CallbackMap extends RemoteCallbackList<ITextToSpeechCallback> {