From 1891740f805555c446a67cb1f0c54464d885f9e3 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 9 Sep 2013 15:49:09 +0100 Subject: [PATCH] Add an explicit 'None' option to the 'Speak punctuation' setting. --- .../layout/speak_punctuation_preference.xml | 14 +++++++++---- .../espeak/SpeakPunctuationPreference.java | 21 ++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/android/res/layout/speak_punctuation_preference.xml b/android/res/layout/speak_punctuation_preference.xml index 6674c4a7..219e2134 100644 --- a/android/res/layout/speak_punctuation_preference.xml +++ b/android/res/layout/speak_punctuation_preference.xml @@ -7,7 +7,8 @@ + android:focusable="false" + android:id="@+id/options"> + + + android:hint="@string/punctuation_characters" /> \ No newline at end of file diff --git a/android/src/com/reecedunn/espeak/SpeakPunctuationPreference.java b/android/src/com/reecedunn/espeak/SpeakPunctuationPreference.java index 15d12658..2aaacd71 100644 --- a/android/src/com/reecedunn/espeak/SpeakPunctuationPreference.java +++ b/android/src/com/reecedunn/espeak/SpeakPunctuationPreference.java @@ -32,6 +32,7 @@ import android.widget.TextView; public class SpeakPunctuationPreference extends DialogPreference { private RadioButton mAll; private RadioButton mCustom; + private RadioButton mNone; private EditText mPunctuationCharacters; private VoiceSettings mSettings; @@ -80,6 +81,7 @@ public class SpeakPunctuationPreference extends DialogPreference { View root = super.onCreateDialogView(); mAll = (RadioButton)root.findViewById(R.id.all); mCustom = (RadioButton)root.findViewById(R.id.custom); + mNone = (RadioButton)root.findViewById(R.id.none); mPunctuationCharacters = (EditText)root.findViewById(R.id.punctuation_characters); return root; } @@ -88,10 +90,16 @@ public class SpeakPunctuationPreference extends DialogPreference { protected void onBindDialogView(View view) { super.onBindDialogView(view); - if (mSettings.getPunctuationLevel() == SpeechSynthesis.PUNCT_ALL) { - mAll.toggle(); - } else { - mCustom.toggle(); + switch (mSettings.getPunctuationLevel()) { + case SpeechSynthesis.PUNCT_ALL: + mAll.toggle(); + break; + case SpeechSynthesis.PUNCT_SOME: + mCustom.toggle(); + break; + case SpeechSynthesis.PUNCT_NONE: + mNone.toggle(); + break; } mPunctuationCharacters.setText(mSettings.getPunctuationCharacters()); @@ -107,7 +115,10 @@ public class SpeakPunctuationPreference extends DialogPreference { if (text != null) { characters = text.toString(); } - if (characters == null || characters.isEmpty()) { + + if (mNone.isChecked()) { + level = SpeechSynthesis.PUNCT_NONE; + } else if (characters == null || characters.isEmpty()) { level = mAll.isChecked() ? SpeechSynthesis.PUNCT_ALL : SpeechSynthesis.PUNCT_NONE; } else { level = mAll.isChecked() ? SpeechSynthesis.PUNCT_ALL : SpeechSynthesis.PUNCT_SOME;