]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
Add code to speak full left/right side entries.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
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(