Loading res/xml/tts_settings.xml +6 −3 Original line number Diff line number Diff line Loading @@ -24,13 +24,16 @@ <PreferenceCategory android:key="tts_general_section" android:title="@string/tts_general_section_title"> <ListPreference <com.android.settings.SeekBarPreference android:key="tts_default_rate" android:title="@string/tts_default_rate_title" android:summary="@string/tts_default_rate_summary" android:persistent="false" android:entries="@array/tts_rate_entries" android:entryValues="@array/tts_rate_values" /> android:defaultValue="50" android:max="400" /> <SwitchPreference android:key="tts_default_higher_speech_rate_enabled" android:title="Higher speech rate" /> </PreferenceCategory> <Preference android:key="tts_play_example" Loading src/com/android/settings/tts/TextToSpeechSettings.java +50 −6 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.EngineInfo; import android.speech.tts.TtsEngines; import android.speech.tts.UtteranceProgressListener; import android.support.v7.preference.ListPreference; import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.text.TextUtils; Loading @@ -35,6 +35,7 @@ import android.widget.Checkable; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SeekBarPreference; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.tts.TtsEnginePreference.RadioButtonGroupState; Loading @@ -49,6 +50,7 @@ import java.util.Set; import static android.provider.Settings.Secure.TTS_DEFAULT_RATE; import static android.provider.Settings.Secure.TTS_DEFAULT_SYNTH; import static android.provider.Settings.Secure.TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED; public class TextToSpeechSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener, Loading @@ -63,6 +65,10 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements /** Preference key for the TTS rate selection dialog. */ private static final String KEY_DEFAULT_RATE = "tts_default_rate"; /** Preference key for the TTS advanced speech rate switch. */ private static final String KEY_HIGHER_RATE_SWITCH = "tts_default_higher_speech_rate_enabled"; /** Preference key for the TTS status field. */ private static final String KEY_STATUS = "tts_status"; Loading @@ -78,13 +84,25 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements private static final int GET_SAMPLE_TEXT = 1983; private static final int VOICE_DATA_INTEGRITY_CHECK = 1977; /** * Maximum speech rate values. */ private static final int MAX_SPEECH_RATE = 400; private static final int MAX_HIGHER_SPEECH_RATE = 600; private PreferenceCategory mEnginePreferenceCategory; private ListPreference mDefaultRatePref; private SeekBarPreference mDefaultRatePref; private SwitchPreference mHigherRateSwitchPref; private Preference mPlayExample; private Preference mEngineStatus; private int mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE; /** * Whether higher speech rate is enabled. */ private boolean mHigherRateSwitch = false; /** * The currently selected engine. */ Loading Loading @@ -161,7 +179,8 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements mEnginePreferenceCategory = (PreferenceCategory) findPreference( KEY_ENGINE_PREFERENCE_SECTION); mDefaultRatePref = (ListPreference) findPreference(KEY_DEFAULT_RATE); mDefaultRatePref = (SeekBarPreference) findPreference(KEY_DEFAULT_RATE); mHigherRateSwitchPref = (SwitchPreference) findPreference(KEY_HIGHER_RATE_SWITCH); mEngineStatus = findPreference(KEY_STATUS); updateEngineStatus(R.string.tts_status_checking); Loading Loading @@ -223,13 +242,25 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements // Set up the default rate. try { mDefaultRate = android.provider.Settings.Secure.getInt(resolver, TTS_DEFAULT_RATE); mHigherRateSwitch = android.provider.Settings.Secure.getInt(resolver, TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED) == 1; } catch (SettingNotFoundException e) { // Default rate setting not found, initialize it mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE; mHigherRateSwitch = false; } mDefaultRatePref.setValue(String.valueOf(mDefaultRate)); mDefaultRatePref.setProgress(mDefaultRate); mDefaultRatePref.setOnPreferenceChangeListener(this); mHigherRateSwitchPref.setChecked(mHigherRateSwitch); mHigherRateSwitchPref.setOnPreferenceChangeListener(this); if (mHigherRateSwitch) { mDefaultRatePref.setMax(MAX_HIGHER_SPEECH_RATE); } else { mDefaultRatePref.setMax(MAX_SPEECH_RATE); } mCurrentEngine = mTts.getCurrentEngine(); SettingsActivity activity = null; Loading Loading @@ -447,7 +478,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements public boolean onPreferenceChange(Preference preference, Object objValue) { if (KEY_DEFAULT_RATE.equals(preference.getKey())) { // Default rate mDefaultRate = Integer.parseInt((String) objValue); mDefaultRate = ((Integer) objValue).intValue(); try { android.provider.Settings.Secure.putInt(getContentResolver(), TTS_DEFAULT_RATE, mDefaultRate); Loading @@ -458,8 +489,21 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements } catch (NumberFormatException e) { Log.e(TAG, "could not persist default TTS rate setting", e); } } else if (KEY_HIGHER_RATE_SWITCH.equals(preference.getKey())) { // Adjust range of speech rate depending on switch setting. mHigherRateSwitch = ((Boolean) objValue).booleanValue(); try { android.provider.Settings.Secure.putInt(getContentResolver(), TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED, mHigherRateSwitch ? 1 : 0); if (mHigherRateSwitch) { mDefaultRatePref.setMax(MAX_HIGHER_SPEECH_RATE); } else { mDefaultRatePref.setMax(MAX_SPEECH_RATE); } } catch (NumberFormatException e) { Log.e(TAG, "could not persist default higher speech rate setting", e); } } return true; } Loading Loading
res/xml/tts_settings.xml +6 −3 Original line number Diff line number Diff line Loading @@ -24,13 +24,16 @@ <PreferenceCategory android:key="tts_general_section" android:title="@string/tts_general_section_title"> <ListPreference <com.android.settings.SeekBarPreference android:key="tts_default_rate" android:title="@string/tts_default_rate_title" android:summary="@string/tts_default_rate_summary" android:persistent="false" android:entries="@array/tts_rate_entries" android:entryValues="@array/tts_rate_values" /> android:defaultValue="50" android:max="400" /> <SwitchPreference android:key="tts_default_higher_speech_rate_enabled" android:title="Higher speech rate" /> </PreferenceCategory> <Preference android:key="tts_play_example" Loading
src/com/android/settings/tts/TextToSpeechSettings.java +50 −6 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.EngineInfo; import android.speech.tts.TtsEngines; import android.speech.tts.UtteranceProgressListener; import android.support.v7.preference.ListPreference; import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.text.TextUtils; Loading @@ -35,6 +35,7 @@ import android.widget.Checkable; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SeekBarPreference; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.tts.TtsEnginePreference.RadioButtonGroupState; Loading @@ -49,6 +50,7 @@ import java.util.Set; import static android.provider.Settings.Secure.TTS_DEFAULT_RATE; import static android.provider.Settings.Secure.TTS_DEFAULT_SYNTH; import static android.provider.Settings.Secure.TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED; public class TextToSpeechSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener, Loading @@ -63,6 +65,10 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements /** Preference key for the TTS rate selection dialog. */ private static final String KEY_DEFAULT_RATE = "tts_default_rate"; /** Preference key for the TTS advanced speech rate switch. */ private static final String KEY_HIGHER_RATE_SWITCH = "tts_default_higher_speech_rate_enabled"; /** Preference key for the TTS status field. */ private static final String KEY_STATUS = "tts_status"; Loading @@ -78,13 +84,25 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements private static final int GET_SAMPLE_TEXT = 1983; private static final int VOICE_DATA_INTEGRITY_CHECK = 1977; /** * Maximum speech rate values. */ private static final int MAX_SPEECH_RATE = 400; private static final int MAX_HIGHER_SPEECH_RATE = 600; private PreferenceCategory mEnginePreferenceCategory; private ListPreference mDefaultRatePref; private SeekBarPreference mDefaultRatePref; private SwitchPreference mHigherRateSwitchPref; private Preference mPlayExample; private Preference mEngineStatus; private int mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE; /** * Whether higher speech rate is enabled. */ private boolean mHigherRateSwitch = false; /** * The currently selected engine. */ Loading Loading @@ -161,7 +179,8 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements mEnginePreferenceCategory = (PreferenceCategory) findPreference( KEY_ENGINE_PREFERENCE_SECTION); mDefaultRatePref = (ListPreference) findPreference(KEY_DEFAULT_RATE); mDefaultRatePref = (SeekBarPreference) findPreference(KEY_DEFAULT_RATE); mHigherRateSwitchPref = (SwitchPreference) findPreference(KEY_HIGHER_RATE_SWITCH); mEngineStatus = findPreference(KEY_STATUS); updateEngineStatus(R.string.tts_status_checking); Loading Loading @@ -223,13 +242,25 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements // Set up the default rate. try { mDefaultRate = android.provider.Settings.Secure.getInt(resolver, TTS_DEFAULT_RATE); mHigherRateSwitch = android.provider.Settings.Secure.getInt(resolver, TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED) == 1; } catch (SettingNotFoundException e) { // Default rate setting not found, initialize it mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE; mHigherRateSwitch = false; } mDefaultRatePref.setValue(String.valueOf(mDefaultRate)); mDefaultRatePref.setProgress(mDefaultRate); mDefaultRatePref.setOnPreferenceChangeListener(this); mHigherRateSwitchPref.setChecked(mHigherRateSwitch); mHigherRateSwitchPref.setOnPreferenceChangeListener(this); if (mHigherRateSwitch) { mDefaultRatePref.setMax(MAX_HIGHER_SPEECH_RATE); } else { mDefaultRatePref.setMax(MAX_SPEECH_RATE); } mCurrentEngine = mTts.getCurrentEngine(); SettingsActivity activity = null; Loading Loading @@ -447,7 +478,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements public boolean onPreferenceChange(Preference preference, Object objValue) { if (KEY_DEFAULT_RATE.equals(preference.getKey())) { // Default rate mDefaultRate = Integer.parseInt((String) objValue); mDefaultRate = ((Integer) objValue).intValue(); try { android.provider.Settings.Secure.putInt(getContentResolver(), TTS_DEFAULT_RATE, mDefaultRate); Loading @@ -458,8 +489,21 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements } catch (NumberFormatException e) { Log.e(TAG, "could not persist default TTS rate setting", e); } } else if (KEY_HIGHER_RATE_SWITCH.equals(preference.getKey())) { // Adjust range of speech rate depending on switch setting. mHigherRateSwitch = ((Boolean) objValue).booleanValue(); try { android.provider.Settings.Secure.putInt(getContentResolver(), TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED, mHigherRateSwitch ? 1 : 0); if (mHigherRateSwitch) { mDefaultRatePref.setMax(MAX_HIGHER_SPEECH_RATE); } else { mDefaultRatePref.setMax(MAX_SPEECH_RATE); } } catch (NumberFormatException e) { Log.e(TAG, "could not persist default higher speech rate setting", e); } } return true; } Loading