From ce8f2614956a0dfdf3cc4d656960aafe057cc7b9 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 6 May 2013 13:43:48 +0100 Subject: [PATCH] When upgrading the speech rate, clamp it to between the default and maximum values. --- android/src/com/reecedunn/espeak/TtsSettingsActivity.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android/src/com/reecedunn/espeak/TtsSettingsActivity.java b/android/src/com/reecedunn/espeak/TtsSettingsActivity.java index c869f20a..019e9366 100644 --- a/android/src/com/reecedunn/espeak/TtsSettingsActivity.java +++ b/android/src/com/reecedunn/espeak/TtsSettingsActivity.java @@ -52,8 +52,13 @@ public class TtsSettingsActivity extends PreferenceActivity { if (rate == null) { // Try the old eyes-free setting: SpeechSynthesis engine = new SpeechSynthesis(this, null); + int defaultValue = engine.Rate.getDefaultValue(); + int maxValue = engine.Rate.getMaxValue(); + rate = prefs.getString("default_rate", "100"); - int rateValue = (Integer.parseInt(rate) / 100) * engine.Rate.getDefaultValue(); + int rateValue = (Integer.parseInt(rate) / 100) * defaultValue; + if (rateValue < defaultValue) rateValue = defaultValue; + if (rateValue > maxValue) rateValue = maxValue; editor.putString("espeak_rate", Integer.toString(rateValue)); }