diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2012-08-13 16:56:02 +0100 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-14 08:29:05 -0700 |
commit | ccd80ec95f035cb9db9775e6f86fea1f7809f168 (patch) | |
tree | 5d60d2097950c9f16d1de6ef7677dc1519974d96 /src/com/android/settings/tts | |
parent | 1c7d15e841a03a62c5c89f514970a8ce14069c2f (diff) | |
download | packages_apps_Settings-ccd80ec95f035cb9db9775e6f86fea1f7809f168.zip packages_apps_Settings-ccd80ec95f035cb9db9775e6f86fea1f7809f168.tar.gz packages_apps_Settings-ccd80ec95f035cb9db9775e6f86fea1f7809f168.tar.bz2 |
Fix for setting TTS language to recently downloaded one
If user added new voice pack, then set it as a default language,
went level back and went to TTS settings again, it ended in crash.
This is because first updateVoiceDetails uses old voice data details
that settings retreived long time ago.
locales preference is hidden until TTs engine returns list of locales.
Change-Id: I33a81ff259c69adb4c051ee693b6c41b93f302d0
Diffstat (limited to 'src/com/android/settings/tts')
-rw-r--r-- | src/com/android/settings/tts/TtsEngineSettingsFragment.java | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/com/android/settings/tts/TtsEngineSettingsFragment.java b/src/com/android/settings/tts/TtsEngineSettingsFragment.java index 267b8e1..d8e32aa 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); } } |