diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8ccb8bfd4b0..c63ad6ef4ec 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2012,6 +2012,10 @@ found in the list of installed applications.
Default settings below override application settings
Default settings
+
+ Default Engine
+
+ Sets the speech synthesis engine to be used for spoken text
Speech rate
diff --git a/res/xml/tts_settings.xml b/res/xml/tts_settings.xml
index d94d5754cc6..6b1a8433409 100644
--- a/res/xml/tts_settings.xml
+++ b/res/xml/tts_settings.xml
@@ -37,6 +37,11 @@
+
-1 ? newIndex : 0;
+ } else if (KEY_TTS_DEFAULT_SYNTH.equals(preference.getKey())) {
+ // TODO: Do a data check here
+ mDefaultEng = objValue.toString();
+ Settings.Secure.putString(getContentResolver(), TTS_DEFAULT_SYNTH, mDefaultEng);
+ if (mTts != null) {
+ mTts.setEngineByPackageName(mDefaultEng);
+ }
+ Log.v("Settings", "The default synth is: " + objValue.toString());
}
return true;
@@ -424,4 +437,23 @@ public class TextToSpeechSettings extends PreferenceActivity implements
Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, DEFAULT_VARIANT_VAL);
}
+
+ private void loadEngines() {
+ ListPreference enginesPref = (ListPreference) findPreference(KEY_TTS_DEFAULT_SYNTH);
+
+ Intent intent = new Intent("android.intent.action.START_TTS_ENGINE");
+
+ ResolveInfo[] enginesArray = new ResolveInfo[0];
+ PackageManager pm = getPackageManager();
+ enginesArray = pm.queryIntentActivities(intent, 0).toArray(enginesArray);
+ CharSequence entries[] = new CharSequence[enginesArray.length];
+ CharSequence values[] = new CharSequence[enginesArray.length];
+ for (int i = 0; i < enginesArray.length; i++) {
+ entries[i] = enginesArray[i].loadLabel(pm);
+ values[i] = enginesArray[i].activityInfo.packageName;
+ }
+ enginesPref.setEntries(entries);
+ enginesPref.setEntryValues(values);
+ }
+
}