Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f040f80a authored by Shweta Chahar's avatar Shweta Chahar Committed by Android (Google) Code Review
Browse files

Merge "Add a reset speech rate button to Text-to-Speech settings UI which...

Merge "Add a reset speech rate button to Text-to-Speech settings UI which resets the speech rate to 1x. Bug Id: 27166001" into nyc-dev
parents 4bd2152c bc170fd6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4443,6 +4443,11 @@
        behalf.  It comes from the <xliff:g id="voice_input_service_app_name">%s</xliff:g>
        application.  Enable the use of this service?</string>
    <!-- On main TTS Settings screen, in default settings section, reset speech rate for synthesized voice to 1x speech rate.-->
    <string name="tts_reset_speech_rate_title">Reset speech rate</string>
    <!-- On main TTS Settings screen, summary for reset speech rate for synthesized voice -->
    <string name="tts_reset_speech_rate_summary">Reset the speed at which the text is spoken to normal.</string>
    <!-- Power Control Widget -->
    <string name="gadget_title">Power control</string>
    <string name="gadget_toggle_wifi">Updating Wi\u2011Fi setting</string>
+5 −0
Original line number Diff line number Diff line
@@ -31,6 +31,11 @@
            android:defaultValue="50"
            android:max="600" />

        <Preference android:key="reset_speech_rate"
            android:persistent="false"
            android:title="@string/tts_reset_speech_rate_title"
            android:summary="@string/tts_reset_speech_rate_summary" />

        <Preference android:key="tts_play_example"
            android:persistent="false"
            android:title="@string/tts_play_example_title"
+28 −14
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ 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 reset speech rate preference. */
    private static final String KEY_RESET_SPEECH_RATE = "reset_speech_rate";

    /** Preference key for the TTS status field. */
    private static final String KEY_STATUS = "tts_status";

@@ -87,6 +90,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
    private PreferenceCategory mEnginePreferenceCategory;
    private SeekBarPreference mDefaultRatePref;
    private SwitchPreference mHigherRateSwitchPref;
    private Preference mResetSpeechRate;
    private Preference mPlayExample;
    private Preference mEngineStatus;

@@ -171,6 +175,9 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
        mPlayExample.setOnPreferenceClickListener(this);
        mPlayExample.setEnabled(false);

        mResetSpeechRate = findPreference(KEY_RESET_SPEECH_RATE);
        mResetSpeechRate.setOnPreferenceClickListener(this);

        mEnginePreferenceCategory = (PreferenceCategory) findPreference(
                KEY_ENGINE_PREFERENCE_SECTION);
        mDefaultRatePref = (SeekBarPreference) findPreference(KEY_DEFAULT_RATE);
@@ -459,24 +466,13 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
    @Override
    public boolean onPreferenceChange(Preference preference, Object objValue) {
        if (KEY_DEFAULT_RATE.equals(preference.getKey())) {
            // Default rate
            mDefaultRate = ((Integer) objValue).intValue();
            try {
                android.provider.Settings.Secure.putInt(getContentResolver(),
                        TTS_DEFAULT_RATE, mDefaultRate);
                if (mTts != null) {
                    mTts.setSpeechRate(mDefaultRate / 100.0f);
                }
                if (DBG) Log.d(TAG, "TTS default rate changed, now " + mDefaultRate);
            } catch (NumberFormatException e) {
                Log.e(TAG, "could not persist default TTS rate setting", e);
            }
            updateSpeechRate(((Integer) objValue).intValue());
        }
        return true;
    }

    /**
     * Called when mPlayExample is clicked
     * Called when mPlayExample or mResetSpeechRate is clicked.
     */
    @Override
    public boolean onPreferenceClick(Preference preference) {
@@ -485,11 +481,29 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
            // the actual speaking
            speakSampleText();
            return true;
        } else if (preference == mResetSpeechRate) {
          mDefaultRatePref.setProgress(TextToSpeech.Engine.DEFAULT_RATE);
          updateSpeechRate(TextToSpeech.Engine.DEFAULT_RATE);
          return true;
        }

        return false;
    }

    private void updateSpeechRate(int speechRate) {
        mDefaultRate = speechRate;
        try {
            android.provider.Settings.Secure.putInt(getContentResolver(),
                    TTS_DEFAULT_RATE, mDefaultRate);
            if (mTts != null) {
                mTts.setSpeechRate(mDefaultRate / 100.0f);
            }
            if (DBG) Log.d(TAG, "TTS default rate changed, now " + mDefaultRate);
        } catch (NumberFormatException e) {
            Log.e(TAG, "could not persist default TTS rate setting", e);
        }
        return;
    }

    private void updateWidgetState(boolean enable) {
        mPlayExample.setEnabled(enable);
        mDefaultRatePref.setEnabled(enable);