diff --git a/res/xml/tts_engine_settings.xml b/res/xml/tts_engine_settings.xml
index 03414e838f7..176bdbcb057 100644
--- a/res/xml/tts_engine_settings.xml
+++ b/res/xml/tts_engine_settings.xml
@@ -19,16 +19,19 @@
android:key="tts_default_lang"
android:title="@string/tts_default_lang_title"
android:summary="@string/tts_default_lang_summary"
- android:persistent="false" />
+ android:persistent="false"
+ android:order="100" />
+ android:title="@string/tts_engine_settings_title"
+ android:order="200" />
+ android:summary="@string/tts_install_data_summary"
+ android:order="300" />
diff --git a/src/com/android/settings/tts/TtsEngineSettingsFragment.java b/src/com/android/settings/tts/TtsEngineSettingsFragment.java
index 267b8e1a1c9..d8e32aac792 100644
--- a/src/com/android/settings/tts/TtsEngineSettingsFragment.java
+++ b/src/com/android/settings/tts/TtsEngineSettingsFragment.java
@@ -104,7 +104,8 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem
mInstallVoicesPreference.setOnPreferenceClickListener(this);
// Remove this preference unless voices are indeed available to install.
root.removePreference(mInstallVoicesPreference);
-
+ // Remove this preference unless locales are indeed available.
+ root.removePreference(mLocalePreference);
root.setTitle(getEngineLabel());
root.setKey(getEngineName());
@@ -121,8 +122,6 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem
mVoiceDataDetails = getArguments().getParcelable(TtsEnginePreference.FRAGMENT_ARGS_VOICES);
- updateVoiceDetails();
-
mTts = new TextToSpeech(getActivity().getApplicationContext(), mTtsInitListener,
getEngineName());
@@ -169,9 +168,8 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem
if (available == null){
Log.e(TAG, "TTS data check failed (available == null).");
- final CharSequence[] empty = new CharSequence[0];
- mLocalePreference.setEntries(empty);
- mLocalePreference.setEntryValues(empty);
+ mLocalePreference.setEnabled(false);
+ getPreferenceScreen().removePreference(mLocalePreference);
return;
}
@@ -183,11 +181,12 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem
}
if (available.size() > 0) {
+ mLocalePreference.setEnabled(true);
+ getPreferenceScreen().addPreference(mLocalePreference);
updateDefaultLocalePref(available);
} else {
- final CharSequence[] empty = new CharSequence[0];
- mLocalePreference.setEntries(empty);
- mLocalePreference.setEntryValues(empty);
+ mLocalePreference.setEnabled(false);
+ getPreferenceScreen().removePreference(mLocalePreference);
}
}