Skip to content

Commit

Permalink
Merge pull request #268 from virxkane/tts-dlg-imp
Browse files Browse the repository at this point in the history
Added numerical values for volume and speed controls in the TTS dialog.
  • Loading branch information
buggins authored Mar 9, 2021
2 parents db74536 + 5c8515d commit d5b3dac
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions android/src/org/coolreader/crengine/TTSToolbarDlg.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import android.widget.PopupWindow;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

import com.s_trace.motion_watchdog.HandlerThread;
import com.s_trace.motion_watchdog.MotionWatchdogHandler;
Expand Down Expand Up @@ -51,6 +52,8 @@ public class TTSToolbarDlg implements Settings {
private TextToSpeech mTTS;
private TTSControlServiceAccessor mTTSControl;
private ImageButton mPlayPauseButton;
private TextView mVolumeTextView;
private TextView mSpeedTextView;
private SeekBar mSbSpeed;
private SeekBar mSbVolume;
private HandlerThread mMotionWatchdog;
Expand Down Expand Up @@ -300,7 +303,7 @@ public void setAppSettings(Properties newSettings, Properties oldSettings) {
mSbSpeed.setProgress(mTTSSpeedPercent);
}

public void processAppSetting(String key, String value) {
private void processAppSetting(String key, String value) {
boolean flg = "1".equals(value);
switch (key) {
case PROP_APP_MOTION_TIMEOUT:
Expand Down Expand Up @@ -603,25 +606,32 @@ public TTSToolbarDlg(CoolReader coolReader, ReaderView readerView, TextToSpeech
setReaderMode();

// setup speed && volume seek bars
int volume = mCoolReader.getVolume();
mVolumeTextView = panel.findViewById(R.id.tts_lbl_volume);
mVolumeTextView.setText(String.format(Locale.getDefault(), "%s (%d%%)", context.getString(R.string.tts_volume), volume));
mSpeedTextView = panel.findViewById(R.id.tts_lbl_speed);
mSpeedTextView.setText(String.format(Locale.getDefault(), "%s (x%.2f)", context.getString(R.string.tts_rate), speechRateFromPercent(50)));

mSbSpeed = panel.findViewById(R.id.tts_sb_speed);
mSbVolume = panel.findViewById(R.id.tts_sb_volume);

mSbSpeed.setMax(100);
mSbSpeed.setProgress(50);
mSbVolume.setMax(100);
mSbVolume.setProgress(mCoolReader.getVolume());
mSbVolume.setProgress(volume);
mSbSpeed.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// round to a multiple of 10
int roundedVal = 10*((progress + 5)/10);
// round to a multiple of 5
int roundedVal = 5*(progress/5);
if (progress != roundedVal) {
mSbSpeed.setProgress(roundedVal);
return;
}
mTTSSpeedPercent = progress;
mTTS.setSpeechRate(speechRateFromPercent(mTTSSpeedPercent));
mSpeedTextView.setText(String.format(Locale.getDefault(), "%s (x%.2f)", context.getString(R.string.tts_rate), speechRateFromPercent(progress)));
}

@Override
Expand All @@ -638,6 +648,7 @@ public void onStopTrackingTouch(SeekBar seekBar) {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
mCoolReader.setVolume(progress);
mVolumeTextView.setText(String.format(Locale.getDefault(), "%s (%d%%)", context.getString(R.string.tts_volume), progress));
}

@Override
Expand Down

0 comments on commit d5b3dac

Please sign in to comment.