]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Add code to speak full left/right side entries.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Nov 2016 19:59:50 +0000 (20:59 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Nov 2016 19:59:50 +0000 (20:59 +0100)
res/values/strings.xml
src/com/hughes/android/dictionary/DictionaryActivity.java

index 000eb32ac1c5db926f470649f78ac1aad7138c41..bbcd10ae0cde66370c86fe13e3a806da69288a72 100644 (file)
@@ -46,6 +46,8 @@
     <string name="fontFailure">Font failure: %s</string>
     <string name="seeAlso">See also: %1$s (%2$s)</string>
     <string name="speak">Speak</string>
+    <string name="speak_left">Speak left side</string>
+    <string name="speak_right">Speak right side</string>
     <string name="nextWord">Next word</string>
     <string name="previousWord">Previous word</string>
     <string name="randomWord">Random word</string>
index d2b4a923623fa4534151baca54ce25655b220604..6dc95c68dc95b2c9bdba2d18f4c9d418201718a9 100644 (file)
@@ -1075,6 +1075,37 @@ public class DictionaryActivity extends ActionBarActivity {
                 }
             });
         }
+        if (row instanceof PairEntry.Row && ttsReady) {
+            final List<Pair> 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<String, String>());
+                    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<String, String>());
+                    return false;
+                }
+            });
+        }
     }
 
     private void jumpToTextFromHyperLink(