Remove 'Higher speech rate' button based on the results of the speech

rate slider a11y UX study.

Also, group speech rate, sample sentence synthesis and default language
status into a single preference category as they all fall under the
general TTS settings category.

Bug: 24527715
Change-Id: If7253e2e8a468393afcb4c24f5a775cb9af79db9
This commit is contained in:
shwetachahar
2016-02-08 12:00:35 +00:00
committed by Shweta Chahar
parent fd9f4511d6
commit 5433496186
2 changed files with 14 additions and 49 deletions

View File

@@ -29,20 +29,17 @@
android:title="@string/tts_default_rate_title" android:title="@string/tts_default_rate_title"
android:summary="@string/tts_default_rate_summary" android:summary="@string/tts_default_rate_summary"
android:defaultValue="50" android:defaultValue="50"
android:max="400" /> android:max="600" />
<SwitchPreference
android:key="tts_default_higher_speech_rate_enabled" <Preference android:key="tts_play_example"
android:title="Higher speech rate" /> android:persistent="false"
android:title="@string/tts_play_example_title"
android:summary="@string/tts_play_example_summary" />
<Preference android:key="tts_status"
android:enabled="false"
android:shouldDisableView="false"
android:persistent="false"
android:title="@string/tts_status_title"/>
</PreferenceCategory> </PreferenceCategory>
<Preference android:key="tts_play_example"
android:persistent="false"
android:title="@string/tts_play_example_title"
android:summary="@string/tts_play_example_summary" />
<Preference android:key="tts_status"
android:enabled="false"
android:shouldDisableView="false"
android:persistent="false"
android:title="@string/tts_status_title"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -50,7 +50,6 @@ import java.util.Set;
import static android.provider.Settings.Secure.TTS_DEFAULT_RATE; 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_SYNTH;
import static android.provider.Settings.Secure.TTS_DEFAULT_HIGHER_SPEECH_RATE_ENABLED;
public class TextToSpeechSettings extends SettingsPreferenceFragment implements public class TextToSpeechSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener,
@@ -65,10 +64,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
/** Preference key for the TTS rate selection dialog. */ /** Preference key for the TTS rate selection dialog. */
private static final String KEY_DEFAULT_RATE = "tts_default_rate"; 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. */ /** Preference key for the TTS status field. */
private static final String KEY_STATUS = "tts_status"; private static final String KEY_STATUS = "tts_status";
@@ -87,8 +82,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
/** /**
* Maximum speech rate values. * Maximum speech rate values.
*/ */
private static final int MAX_SPEECH_RATE = 400; private static final int MAX_SPEECH_RATE = 600;
private static final int MAX_HIGHER_SPEECH_RATE = 600;
private PreferenceCategory mEnginePreferenceCategory; private PreferenceCategory mEnginePreferenceCategory;
private SeekBarPreference mDefaultRatePref; private SeekBarPreference mDefaultRatePref;
@@ -180,7 +174,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
mEnginePreferenceCategory = (PreferenceCategory) findPreference( mEnginePreferenceCategory = (PreferenceCategory) findPreference(
KEY_ENGINE_PREFERENCE_SECTION); KEY_ENGINE_PREFERENCE_SECTION);
mDefaultRatePref = (SeekBarPreference) findPreference(KEY_DEFAULT_RATE); mDefaultRatePref = (SeekBarPreference) findPreference(KEY_DEFAULT_RATE);
mHigherRateSwitchPref = (SwitchPreference) findPreference(KEY_HIGHER_RATE_SWITCH);
mEngineStatus = findPreference(KEY_STATUS); mEngineStatus = findPreference(KEY_STATUS);
updateEngineStatus(R.string.tts_status_checking); updateEngineStatus(R.string.tts_status_checking);
@@ -242,24 +235,13 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
// Set up the default rate. // Set up the default rate.
try { try {
mDefaultRate = android.provider.Settings.Secure.getInt(resolver, TTS_DEFAULT_RATE); 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) { } catch (SettingNotFoundException e) {
// Default rate setting not found, initialize it // Default rate setting not found, initialize it
mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE; mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE;
mHigherRateSwitch = false;
} }
mDefaultRatePref.setProgress(mDefaultRate); mDefaultRatePref.setProgress(mDefaultRate);
mDefaultRatePref.setOnPreferenceChangeListener(this); mDefaultRatePref.setOnPreferenceChangeListener(this);
mDefaultRatePref.setMax(MAX_SPEECH_RATE);
mHigherRateSwitchPref.setChecked(mHigherRateSwitch);
mHigherRateSwitchPref.setOnPreferenceChangeListener(this);
if (mHigherRateSwitch) {
mDefaultRatePref.setMax(MAX_HIGHER_SPEECH_RATE);
} else {
mDefaultRatePref.setMax(MAX_SPEECH_RATE);
}
mCurrentEngine = mTts.getCurrentEngine(); mCurrentEngine = mTts.getCurrentEngine();
@@ -489,20 +471,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
Log.e(TAG, "could not persist default TTS rate setting", 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; return true;
} }