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

Commit aaf9df3b authored by shwetachahar's avatar shwetachahar
Browse files

Add a button to reset pitch to default value.

Bug: 27949093
Change-Id: Ia7fd2f824b8e87c08f9e2f3defca6e645c5c1bfb
parent 2cae2f16
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,11 @@
            android:title="@string/tts_reset_speech_rate_title"
            android:summary="@string/tts_reset_speech_rate_summary" />

        <Preference android:key="reset_speech_pitch"
            android:persistent="false"
            android:title="@string/tts_reset_speech_pitch_title"
            android:summary="@string/tts_reset_speech_pitch_summary" />

        <Preference android:key="tts_play_example"
            android:persistent="false"
            android:title="@string/tts_play_example_title"
+30 −12
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
    /** 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 reset speech pitch preference. */
    private static final String KEY_RESET_SPEECH_PITCH = "reset_speech_pitch";

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

@@ -107,6 +110,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
    private SeekBarPreference mDefaultPitchPref;
    private SeekBarPreference mDefaultRatePref;
    private Preference mResetSpeechRate;
    private Preference mResetSpeechPitch;
    private Preference mPlayExample;
    private Preference mEngineStatus;

@@ -189,6 +193,8 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements

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

        mEnginePreferenceCategory = (PreferenceCategory) findPreference(
                KEY_ENGINE_PREFERENCE_SECTION);
@@ -505,18 +511,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
        if (KEY_DEFAULT_RATE.equals(preference.getKey())) {
            updateSpeechRate((Integer) objValue);
        } else if (KEY_DEFAULT_PITCH.equals(preference.getKey())) {
            int progress = (Integer) objValue;
            mDefaultPitch = getSpeechPitchValueFromSeekBarProgress(progress);
            try {
                android.provider.Settings.Secure.putInt(getContentResolver(),
                        TTS_DEFAULT_PITCH, mDefaultPitch);
               if (mTts != null) {
                   mTts.setPitch(mDefaultPitch / 100.0f);
               }
               if (DBG) Log.d(TAG, "TTS default pitch changed, now" + mDefaultPitch);
           } catch (NumberFormatException e) {
               Log.e(TAG, "could not persist default TTS pitch setting", e);
           }
            updateSpeechPitchValue((Integer) objValue);
        }
        return true;
    }
@@ -535,7 +530,14 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
          mDefaultRatePref.setProgress(TextToSpeech.Engine.DEFAULT_RATE);
          updateSpeechRate(TextToSpeech.Engine.DEFAULT_RATE);
          return true;
        } else if (preference == mResetSpeechPitch) {
          int pitchSeekbarProgress = getPitchSeekBarProgressFromSpeechPitchValue(
              TextToSpeech.Engine.DEFAULT_PITCH);
          mDefaultPitchPref.setProgress(pitchSeekbarProgress);
          updateSpeechPitchValue(pitchSeekbarProgress);
          return true;
        }

        return false;
    }

@@ -554,6 +556,22 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
        return;
    }

    private void updateSpeechPitchValue(int speechPitchSeekBarProgress) {
        mDefaultPitch = getSpeechPitchValueFromSeekBarProgress(
            speechPitchSeekBarProgress);
        try {
            android.provider.Settings.Secure.putInt(getContentResolver(),
                    TTS_DEFAULT_PITCH, mDefaultPitch);
            if (mTts != null) {
                mTts.setPitch(mDefaultPitch / 100.0f);
            }
            if (DBG) Log.d(TAG, "TTS default pitch changed, now" + mDefaultPitch);
        } catch (NumberFormatException e) {
            Log.e(TAG, "could not persist default TTS pitch setting", e);
        }
        return;
    }

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