mirror of
https://github.com/peterosterlund2/droidfish.git
synced 2024-11-23 11:31:33 +01:00
Separate settings for "move sound" and "move speech"
This commit is contained in:
parent
d6e7771eab
commit
979b23cf02
|
@ -221,6 +221,7 @@ public class DroidFish extends Activity
|
|||
|
||||
private boolean leftHanded;
|
||||
private String moveAnnounceType;
|
||||
private boolean moveSoundEnabled;
|
||||
private MediaPlayer moveSound;
|
||||
private boolean vibrateEnabled;
|
||||
private boolean animateMoves;
|
||||
|
@ -1290,6 +1291,15 @@ public class DroidFish extends Activity
|
|||
statusFontSize = Math.min(statusFontSize, 16);
|
||||
status.setTextSize(statusFontSize);
|
||||
moveAnnounceType = settings.getString("moveAnnounceType", "off");
|
||||
moveSoundEnabled = settings.getBoolean("moveSoundEnabled", false);
|
||||
if (moveAnnounceType.equals("sound")) {
|
||||
moveAnnounceType = "off";
|
||||
moveSoundEnabled = true;
|
||||
Editor editor = settings.edit();
|
||||
editor.putString("moveAnnounceType", moveAnnounceType);
|
||||
editor.putBoolean("moveSoundEnabled", moveSoundEnabled);
|
||||
editor.apply();
|
||||
}
|
||||
initSpeech();
|
||||
vibrateEnabled = settings.getBoolean("vibrateEnabled", false);
|
||||
animateMoves = settings.getBoolean("animateMoves", true);
|
||||
|
@ -3690,19 +3700,17 @@ public class DroidFish extends Activity
|
|||
|
||||
@Override
|
||||
public void movePlayed(Position pos, Move move, boolean computerMove) {
|
||||
if ("sound".equals(moveAnnounceType)) {
|
||||
if (computerMove) {
|
||||
if (moveAnnounceType.startsWith("speech_")) {
|
||||
speech.say(pos, move, moveSoundEnabled && computerMove);
|
||||
} else if (moveSoundEnabled && computerMove) {
|
||||
if (moveSound != null)
|
||||
moveSound.release();
|
||||
try {
|
||||
moveSound = MediaPlayer.create(this, R.raw.movesound);
|
||||
if (moveSound != null)
|
||||
moveSound.release();
|
||||
try {
|
||||
moveSound = MediaPlayer.create(this, R.raw.movesound);
|
||||
if (moveSound != null)
|
||||
moveSound.start();
|
||||
} catch (NotFoundException ignore) {
|
||||
}
|
||||
moveSound.start();
|
||||
} catch (NotFoundException ignore) {
|
||||
}
|
||||
} else if (moveAnnounceType.startsWith("speech_")) {
|
||||
speech.say(pos, move);
|
||||
}
|
||||
if (vibrateEnabled && computerMove) {
|
||||
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
|
||||
|
|
|
@ -34,7 +34,8 @@ import android.widget.Toast;
|
|||
public class Speech {
|
||||
private TextToSpeech tts;
|
||||
private boolean initialized = false;
|
||||
private String toSpeak = null;
|
||||
private String toSpeak = null; // Pending text to speak after initialization
|
||||
private boolean toPlaySound = false; // Pending sound to play after initialization
|
||||
|
||||
public enum Language {
|
||||
EN, // English
|
||||
|
@ -82,7 +83,7 @@ public class Speech {
|
|||
case TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE:
|
||||
lang = Language.fromString(langStr);
|
||||
tts.addEarcon("[move]", "org.petero.droidfish", R.raw.movesound);
|
||||
say(toSpeak);
|
||||
say(toSpeak, toPlaySound);
|
||||
break;
|
||||
case TextToSpeech.LANG_MISSING_DATA:
|
||||
toast = R.string.tts_data_missing;
|
||||
|
@ -102,16 +103,17 @@ public class Speech {
|
|||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void say(String text) {
|
||||
private void say(String text, boolean playSound) {
|
||||
if (initialized) {
|
||||
if (lang != Language.NONE && text != null) {
|
||||
if (!tts.isSpeaking())
|
||||
if (playSound && !tts.isSpeaking())
|
||||
tts.playEarcon("[move]", TextToSpeech.QUEUE_ADD, null);
|
||||
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
|
||||
}
|
||||
toSpeak = null;
|
||||
} else {
|
||||
toSpeak = text;
|
||||
toPlaySound = playSound;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,11 +135,11 @@ public class Speech {
|
|||
}
|
||||
|
||||
/** Convert move "move" in position "pos" to a sentence and speak it. */
|
||||
public void say(Position pos, Move move) {
|
||||
public void say(Position pos, Move move, boolean playSound) {
|
||||
String s = moveToText(pos, move, lang);
|
||||
// System.out.printf("%.3f Speech.say(): %s\n", System.currentTimeMillis() * 1e-3, s);
|
||||
if (!s.isEmpty())
|
||||
say(s);
|
||||
say(s, playSound);
|
||||
}
|
||||
|
||||
/** Convert move "move" in position "pos" to a sentence that can be spoken. */
|
||||
|
|
|
@ -788,14 +788,12 @@
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Выкл.</item>
|
||||
<item>Прайграванне гуку</item>
|
||||
<item>Па-ангельску</item>
|
||||
<item>Па-нямецку</item>
|
||||
<item>Па-іспанску</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Um gegebenenfalls Strom zu sparen, ist es empfehlenswert, dass Sie diese Paramet
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Keine Benachrichtigung</item>
|
||||
<item>Benachrichtigungston</item>
|
||||
<item>Zugansage auf Englisch</item>
|
||||
<item>Zugansage auf Deutsch</item>
|
||||
<item>Zugansage auf Spanisch</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Si está usted utilizando la batería, se recomienda que cambie los ajustes para
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Anuncio de movimientos desconectado</item>
|
||||
<item>Aviso de movimiento</item>
|
||||
<item>Texto hablado en inglés</item>
|
||||
<item>Texto hablado en alemán</item>
|
||||
<item>Texto hablado en español</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Lorsque que vous êtes sur batterie, il est recommandé de changer les paramètr
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Off</item>
|
||||
<item>Play sound</item>
|
||||
<item>English Speech</item>
|
||||
<item>German Speech</item>
|
||||
<item>Spanish Speech</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Se l\'alimentazione è a batteria, è consigliabile modificare le impostazioni p
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Spento</item>
|
||||
<item>Riproduci un suono</item>
|
||||
<item>Annuncio vocale in inglese</item>
|
||||
<item>Annuncio vocale in tedesco</item>
|
||||
<item>Annuncio vocale in Spagnolo</item>
|
||||
|
|
|
@ -792,14 +792,12 @@ DroidFish는 백그라운드에 실행 중인 상태에서 다음과 같이 설
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>끄기</item>
|
||||
<item>사운드 재생</item>
|
||||
<item>영어 말하기</item>
|
||||
<item>독일어 말하기</item>
|
||||
<item>스페인어 말하기</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Als uw telefoon op batterij werkt is het aan te raden om deze instellingen te wi
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Off</item>
|
||||
<item>Play sound</item>
|
||||
<item>English Speech</item>
|
||||
<item>German Speech</item>
|
||||
<item>Spanish Speech</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Jeśli pracujesz na baterii, zalecana jest zmiana ustawień, w celu oszczędzani
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Wyłączone</item>
|
||||
<item>Odtwórz dźwięk</item>
|
||||
<item>Wymowa angielska</item>
|
||||
<item>Mowa niemiecka</item>
|
||||
<item>Mowa hiszpańska</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Se você está usando somente a bateria, recomenda-se que você mude as configur
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Desligado</item>
|
||||
<item>Tocar som</item>
|
||||
<item>Voz em inglês</item>
|
||||
<item>Voz em alemão</item>
|
||||
<item>Voz em espanhol</item>
|
||||
|
|
|
@ -788,14 +788,12 @@
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Выкл.</item>
|
||||
<item>Воспроизведение звука</item>
|
||||
<item>По-английски</item>
|
||||
<item>По-немецки</item>
|
||||
<item>По-испански</item>
|
||||
|
|
|
@ -788,14 +788,12 @@ Pil gücüyle çalışıyorsanız, pil gücünden tasarruf etmek için ayarları
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Kapalı</item>
|
||||
<item>Ses çal</item>
|
||||
<item>İngilizce konuşma</item>
|
||||
<item>Almanca konuşma</item>
|
||||
<item>İspanyolca konuşma</item>
|
||||
|
|
|
@ -788,14 +788,12 @@
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Викл.</item>
|
||||
<item>Відтворення звуку</item>
|
||||
<item>Англійська вимова</item>
|
||||
<item>Німецька вимова</item>
|
||||
<item>Іспанська вимова</item>
|
||||
|
|
|
@ -788,14 +788,12 @@
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>关闭</item>
|
||||
<item>播放声音</item>
|
||||
<item>英语语音</item>
|
||||
<item>德语语音</item>
|
||||
<item>西班牙语音</item>
|
||||
|
|
|
@ -303,8 +303,10 @@ If you are running on battery power, it is recommended that you change settings
|
|||
<string name="prefs_autoScrollTitle_summary">Auto scroll titlebar if player names are too long</string>
|
||||
<string name="prefs_quickMoveInput_title">Quick Move Input</string>
|
||||
<string name="prefs_quickMoveInput_summary">From and To squares can be touched in any order. Move is played as soon as uniquely defined.</string>
|
||||
<string name="prefs_moveAnnounceType_title">Move Announcement</string>
|
||||
<string name="prefs_moveAnnounceType_summary">Announcement sound when computer makes a move</string>
|
||||
<string name="prefs_moveSoundEnabled_title">Move sound</string>
|
||||
<string name="prefs_moveSoundEnabled_summary">Play sound when computer makes a move</string>
|
||||
<string name="prefs_moveAnnounceType_title">Speak moves</string>
|
||||
<string name="prefs_moveAnnounceType_summary">Speak when computer makes a move</string>
|
||||
<string name="prefs_vibrateEnabled_title">Enable Vibration</string>
|
||||
<string name="prefs_vibrateEnabled_summary">Vibrate when computer makes a move</string>
|
||||
<string name="prefs_fullScreenMode_title">Fullscreen Mode</string>
|
||||
|
@ -787,14 +789,12 @@ If you are running on battery power, it is recommended that you change settings
|
|||
</string-array>
|
||||
<string-array name="move_announce_type_values">
|
||||
<item>off</item>
|
||||
<item>sound</item>
|
||||
<item>speech_en</item>
|
||||
<item>speech_de</item>
|
||||
<item>speech_es</item>
|
||||
</string-array>
|
||||
<string-array name="move_announce_type_texts">
|
||||
<item>Off</item>
|
||||
<item>Play sound</item>
|
||||
<item>English Speech</item>
|
||||
<item>German Speech</item>
|
||||
<item>Spanish Speech</item>
|
||||
|
|
|
@ -173,6 +173,12 @@
|
|||
android:summary="@string/prefs_vibrateEnabled_summary"
|
||||
android:defaultValue="false">
|
||||
</CheckBoxPreference>
|
||||
<CheckBoxPreference
|
||||
android:key="moveSoundEnabled"
|
||||
android:title="@string/prefs_moveSoundEnabled_title"
|
||||
android:summary="@string/prefs_moveSoundEnabled_summary"
|
||||
android:defaultValue="false">
|
||||
</CheckBoxPreference>
|
||||
<ListPreference
|
||||
android:key="moveAnnounceType"
|
||||
android:title="@string/prefs_moveAnnounceType_title"
|
||||
|
|
Loading…
Reference in New Issue
Block a user