From 131ee153d1b5af73d423882c5852cb1061e75e03 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Sun, 13 Nov 2016 20:59:50 +0100 Subject: [PATCH] Add code to speak full left/right side entries. --- res/values/strings.xml | 2 ++ .../dictionary/DictionaryActivity.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index 000eb32..bbcd10a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -46,6 +46,8 @@ Font failure: %s See also: %1$s (%2$s) Speak + Speak left side + Speak right side Next word Previous word Random word diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index d2b4a92..6dc95c6 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -1075,6 +1075,37 @@ public class DictionaryActivity extends ActionBarActivity { } }); } + if (row instanceof PairEntry.Row && ttsReady) { + final List pairs = ((PairEntry.Row)row).getEntry().pairs; + final MenuItem speakLeft = menu.add(R.string.speak_left); + speakLeft.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(android.view.MenuItem item) { + int idx = index.swapPairEntries ? 1 : 0; + updateTTSLanguage(idx); + String text = ""; + for (Pair p : pairs) text += p.get(idx); + text = text.replaceAll("\\{[^{}]*\\}", "").replace("{", "").replace("}", ""); + textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, + new HashMap()); + return false; + } + }); + final MenuItem speakRight = menu.add(R.string.speak_right); + speakRight.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(android.view.MenuItem item) { + int idx = index.swapPairEntries ? 0 : 1; + updateTTSLanguage(idx); + String text = ""; + for (Pair p : pairs) text += p.get(idx); + text = text.replaceAll("\\{[^{}]*\\}", "").replace("{", "").replace("}", ""); + textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, + new HashMap()); + return false; + } + }); + } } private void jumpToTextFromHyperLink( -- 2.43.0