diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java
index e39b916f8..513b703be 100644
--- a/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java
+++ b/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java
@@ -34,6 +34,7 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.ui.DateChangedAlerts;
import com.todoroo.astrid.ui.QuickAddBar;
+import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import com.todoroo.astrid.voice.VoiceRecognizer;
@@ -59,8 +60,7 @@ import javax.inject.Inject;
*/
public class AstridActivity extends InjectingActionBarActivity
implements NavigationDrawerFragment.OnFilterItemClickedListener,
- TaskListFragment.OnTaskListItemClickedListener,
- RecognizerApiListener {
+ TaskListFragment.OnTaskListItemClickedListener {
private static final Logger log = LoggerFactory.getLogger(AstridActivity.class);
@@ -250,51 +250,6 @@ public class AstridActivity extends InjectingActionBarActivity
super.onBackPressed();
}
- // Voice recognizer callbacks
- @Override
- public void onSpeechResult(String result) {
- TaskListFragment tlf = getTaskListFragment();
- if (tlf != null) {
- EditText box = tlf.quickAddBar.getQuickAddBox();
- if (box != null) {
- box.setText(result);
- }
- }
-
- }
-
- @Override
- public void onSpeechError(int error) {
- TaskListFragment tlf = getTaskListFragment();
- if (tlf != null) {
- QuickAddBar quickAdd = tlf.quickAddBar;
- if (quickAdd != null) {
- VoiceRecognizer vr = quickAdd.getVoiceRecognizer();
- if (vr != null) {
- vr.cancel();
- }
- }
- }
-
- int errorStr = 0;
- switch(error) {
- case SpeechRecognizer.ERROR_NETWORK:
- case SpeechRecognizer.ERROR_NETWORK_TIMEOUT:
- errorStr = R.string.speech_err_network;
- break;
- case SpeechRecognizer.ERROR_NO_MATCH:
- Toast.makeText(this, R.string.speech_err_no_match, Toast.LENGTH_LONG).show();
- break;
- default:
- errorStr = R.string.speech_err_default;
- break;
- }
-
- if (errorStr > 0) {
- DialogUtilities.okDialog(this, getString(errorStr), null);
- }
- }
-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_RESTART_ACTIVITY) {
diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
index 5473de690..f8d216991 100644
--- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
+++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
@@ -12,6 +12,7 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
+import android.speech.SpeechRecognizer;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
@@ -22,9 +23,11 @@ import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
+import android.widget.Toast;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities;
+import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivityTablet;
import com.todoroo.astrid.actfm.TagViewFragment;
@@ -45,6 +48,8 @@ import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.utility.Flags;
+import com.todoroo.astrid.voice.RecognizerApi;
+import com.todoroo.astrid.voice.VoiceRecognizer;
import org.tasks.R;
import org.tasks.preferences.ActivityPreferences;
@@ -52,9 +57,10 @@ import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Inject;
+import static com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener;
-public class TaskListActivity extends AstridActivity implements OnPageChangeListener, OnFilterItemClickedListener {
+public class TaskListActivity extends AstridActivity implements OnPageChangeListener, OnFilterItemClickedListener, RecognizerApiListener {
@Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences;
@@ -518,4 +524,46 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
public boolean isDrawerOpen() {
return navigationDrawer.isDrawerOpen();
}
+
+ // Voice recognizer callbacks
+ @Override
+ public void onSpeechResult(String result) {
+ TaskListFragment tlf = getTaskListFragment();
+ if (tlf != null) {
+ Task task = tlf.quickAddBar.quickAddTask(result, true);
+ onTaskListItemClicked(task.getId());
+ }
+ }
+
+ @Override
+ public void onSpeechError(int error) {
+ TaskListFragment tlf = getTaskListFragment();
+ if (tlf != null) {
+ QuickAddBar quickAdd = tlf.quickAddBar;
+ if (quickAdd != null) {
+ VoiceRecognizer vr = quickAdd.getVoiceRecognizer();
+ if (vr != null) {
+ vr.cancel();
+ }
+ }
+ }
+
+ int errorStr = 0;
+ switch(error) {
+ case SpeechRecognizer.ERROR_NETWORK:
+ case SpeechRecognizer.ERROR_NETWORK_TIMEOUT:
+ errorStr = R.string.speech_err_network;
+ break;
+ case SpeechRecognizer.ERROR_NO_MATCH:
+ Toast.makeText(this, R.string.speech_err_no_match, Toast.LENGTH_LONG).show();
+ break;
+ default:
+ errorStr = R.string.speech_err_default;
+ break;
+ }
+
+ if (errorStr > 0) {
+ DialogUtilities.okDialog(this, getString(errorStr), null);
+ }
+ }
}
diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
index 818b174d3..17db16bfa 100644
--- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
+++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
@@ -450,7 +450,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
protected void setupQuickAddBar() {
quickAddBar = (QuickAddBar) getView().findViewById(R.id.taskListFooter);
- quickAddBar.initialize(injector, (AstridActivity) getActivity(), this, mListener);
+ quickAddBar.initialize(injector, (TaskListActivity) getActivity(), this, mListener);
// set listener for astrid icon
emptyView.findViewById(R.id.empty_text).setOnClickListener(new OnClickListener() {
diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
index 6fd027428..51a715a05 100644
--- a/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
+++ b/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
@@ -25,6 +25,7 @@ import android.widget.TextView.OnEditorActionListener;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskEditFragment;
+import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.activity.TaskListFragment.OnTaskListItemClickedListener;
import com.todoroo.astrid.dao.TaskDao;
@@ -76,7 +77,7 @@ public class QuickAddBar extends LinearLayout {
private VoiceRecognizer voiceRecognizer;
- private AstridActivity activity;
+ private TaskListActivity activity;
private TaskListFragment fragment;
public QuickAddBar(Context context) {
@@ -91,7 +92,7 @@ public class QuickAddBar extends LinearLayout {
super(context, attrs, defStyle);
}
- public void initialize(Injector injector, AstridActivity myActivity, TaskListFragment myFragment,
+ public void initialize(Injector injector, TaskListActivity myActivity, TaskListFragment myFragment,
final OnTaskListItemClickedListener mListener) {
injector.inject(this); // TODO: get rid of this
diff --git a/astrid/src/main/java/com/todoroo/astrid/voice/VoiceRecognizer.java b/astrid/src/main/java/com/todoroo/astrid/voice/VoiceRecognizer.java
index 1f5a75285..87b1479ca 100644
--- a/astrid/src/main/java/com/todoroo/astrid/voice/VoiceRecognizer.java
+++ b/astrid/src/main/java/com/todoroo/astrid/voice/VoiceRecognizer.java
@@ -21,7 +21,6 @@ import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import org.tasks.R;
-import org.tasks.preferences.Preferences;
import java.util.List;
@@ -79,8 +78,7 @@ public class VoiceRecognizer {
public void startVoiceRecognition(Context context, Fragment fragment) {
if (speechRecordingAvailable(context) && recognizerApi != null) {
- recognizerApi.start(Constants.PACKAGE,
- context.getString(R.string.audio_speak_now));
+ recognizerApi.start(Constants.PACKAGE, context.getString(R.string.audio_speak_now));
} else {
int prompt = R.string.voice_create_prompt;
voiceInputAssistant.startVoiceRecognitionActivity(fragment, prompt);
diff --git a/astrid/src/main/res/values-bg-rBG/strings.xml b/astrid/src/main/res/values-bg-rBG/strings.xml
index e34560215..7381984e7 100644
--- a/astrid/src/main/res/values-bg-rBG/strings.xml
+++ b/astrid/src/main/res/values-bg-rBG/strings.xml
@@ -312,6 +312,7 @@
Отделено време:
Говорете за да създадете задача
Говорете за да зададете описание на задача
+ Гласово въвеждане
Гласови напомняния
Tasks ще изтоваря имената на задачите по време на напомняния за задача
Tasks ще изпълнява мелодия по време на напомняния за задача
diff --git a/astrid/src/main/res/values-de/strings.xml b/astrid/src/main/res/values-de/strings.xml
index 1ebf3bc8c..ccd958218 100644
--- a/astrid/src/main/res/values-de/strings.xml
+++ b/astrid/src/main/res/values-de/strings.xml
@@ -501,6 +501,7 @@
Benötigte Zeit:
Sprechen Sie, um eine Aufgabe anzulegen
Sprechen Sie, um Aufgabennotizen zu setzen
+ Spracheingabe aktivieren
Sprach-Erinnerungen
Tasks wird Aufgabennamen bei der Erinnerung aussprechen
Tasks wird bei der Erinnerung einen Klingelton abspielen
diff --git a/astrid/src/main/res/values-el/strings.xml b/astrid/src/main/res/values-el/strings.xml
index 4337aae02..79751a7cb 100644
--- a/astrid/src/main/res/values-el/strings.xml
+++ b/astrid/src/main/res/values-el/strings.xml
@@ -367,6 +367,7 @@
Χρόνος που πέρασε
Μιλήστε για να δημιουργήσετε καθήκον
Μιλήστε για να οριίσετε περιγραφή καθήκοντος
+ Εισαγωγή φωνής
Φωνητικές υπενθυμίσεις
Καθήκοντα
Σκοτεινό θέμα
diff --git a/astrid/src/main/res/values-es/strings.xml b/astrid/src/main/res/values-es/strings.xml
index 9f27d1bc3..c9106dd1f 100644
--- a/astrid/src/main/res/values-es/strings.xml
+++ b/astrid/src/main/res/values-es/strings.xml
@@ -509,6 +509,7 @@ Tasks podría no avisarle cuanto venza una tarea.\n
Tiempo dedicado:
Hable para crear una tarea
Hable para establecer notas de tarea
+ Ingreso por voz
Avisos de voz
Tasks dirá los nombres de las tareas durante los avisos
Tasks reproducirá un tono durante los recordatorios
diff --git a/astrid/src/main/res/values-fr/strings.xml b/astrid/src/main/res/values-fr/strings.xml
index 5968ab214..8dafd6be3 100644
--- a/astrid/src/main/res/values-fr/strings.xml
+++ b/astrid/src/main/res/values-fr/strings.xml
@@ -503,6 +503,7 @@
Temps passé :
Parlez pour créer une nouvelle tâche
Parlez pour définir les notes de la tâche
+ Entrée voix
Rappels vocaux
Tasks donnera le nom de la tâche
Tasks sonnera pendant les rappels
diff --git a/astrid/src/main/res/values-it/strings.xml b/astrid/src/main/res/values-it/strings.xml
index 0bcaeb1d1..41216d8cc 100644
--- a/astrid/src/main/res/values-it/strings.xml
+++ b/astrid/src/main/res/values-it/strings.xml
@@ -449,6 +449,7 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
Tempo speso:
Parla per creare un\'attività
Parla per aggiungere le note
+ Voce
Promemoria vocali
Tasks pronuncerà il nome dell\'attività durante i promemoria
Tasks emetterà una suoneria durante i promemoria
diff --git a/astrid/src/main/res/values-iw/strings.xml b/astrid/src/main/res/values-iw/strings.xml
index 1d89b7536..8ca1b2f7f 100644
--- a/astrid/src/main/res/values-iw/strings.xml
+++ b/astrid/src/main/res/values-iw/strings.xml
@@ -504,6 +504,7 @@
זמן שהושקע:
דַּבֵּר כדי ליצור משימה
דַּבֵּר כדי לקבוע את ההערות למשימה
+ קלט קולי
תזכורות קוליות
אסטריד תאמר את שם המשימה כחלק מהתזכורת
אסטריד תשמיע נְעִימוֹן במתן תזכורות למשימות
diff --git a/astrid/src/main/res/values-ja/strings.xml b/astrid/src/main/res/values-ja/strings.xml
index 0f38feaca..5d4238c6e 100644
--- a/astrid/src/main/res/values-ja/strings.xml
+++ b/astrid/src/main/res/values-ja/strings.xml
@@ -511,6 +511,7 @@
消費時間:
話してタスクを作成してください
話してタスク概要を設定してください
+ 音声入力
音声リマインダー
Tasks はタスクリマインダーでタスク名を話します
Tasks はタスクリマインダーで通知音を鳴らします
diff --git a/astrid/src/main/res/values-ko/strings.xml b/astrid/src/main/res/values-ko/strings.xml
index 56ad7d35c..180b7ef35 100644
--- a/astrid/src/main/res/values-ko/strings.xml
+++ b/astrid/src/main/res/values-ko/strings.xml
@@ -513,6 +513,7 @@
소요 시간:
일정을 만들려면 말하세요
일정의 내용을 말하세요
+ 음성 입력
음성 알림
일정 알림기간 동안 일정 이름을 직접 말해 줍니다
일정 알림기간 동안 벨소리를 울려줍니다
diff --git a/astrid/src/main/res/values-nb/strings.xml b/astrid/src/main/res/values-nb/strings.xml
index c4ee7bdef..86483cf8f 100644
--- a/astrid/src/main/res/values-nb/strings.xml
+++ b/astrid/src/main/res/values-nb/strings.xml
@@ -230,6 +230,7 @@
Oppgaver med tidtaker
Snakk for å skape en oppgave
Snakk for å sette oppgavenotater
+ Taleinndata
Talepåminnelser
Tasks vil lese opp oppgaver ved påminnelse
Tasks vil spille en ringetone ved påminnelse
diff --git a/astrid/src/main/res/values-nl/strings.xml b/astrid/src/main/res/values-nl/strings.xml
index 51e6b5bd4..d7fcb3979 100644
--- a/astrid/src/main/res/values-nl/strings.xml
+++ b/astrid/src/main/res/values-nl/strings.xml
@@ -507,6 +507,7 @@
Gebruikte tijd:
Spreek om taak te maken
Spreek notities van taak in
+ Spraakinvoer
Gesproken herinneringen
Bij herinneringen zullen de taaknamen uitgesproken worden
Er wordt een geluid weergegeven bij herinneringen
diff --git a/astrid/src/main/res/values-pl/strings.xml b/astrid/src/main/res/values-pl/strings.xml
index 50d54bdaa..5d7fdb2f1 100644
--- a/astrid/src/main/res/values-pl/strings.xml
+++ b/astrid/src/main/res/values-pl/strings.xml
@@ -508,6 +508,7 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g
Czas spędzony:
Mów by utworzyć zadanie
Mów by ustawić notatkę zadania
+ Polecenia głosowe
Przypomnienia głosowe
Tasks będzie mówił nazwę zadania podczas przypomnienia
Tasks będzie uruchamiał dzwonek podczas przypomnienia zadania
diff --git a/astrid/src/main/res/values-pt-rBR/strings.xml b/astrid/src/main/res/values-pt-rBR/strings.xml
index 42f0f3fe5..626bc5cd9 100644
--- a/astrid/src/main/res/values-pt-rBR/strings.xml
+++ b/astrid/src/main/res/values-pt-rBR/strings.xml
@@ -472,6 +472,7 @@
Tempo gasto:
Fale para criar uma tarefa
Fale para completar as notas da tarefa
+ Entrada de voz
Lembretes de voz
Tasks irá falar o nome das tarefas durante os lembretes
Tasks irá tocar um som durante o lembrete
diff --git a/astrid/src/main/res/values-pt/strings.xml b/astrid/src/main/res/values-pt/strings.xml
index 8233465d4..64e820d45 100644
--- a/astrid/src/main/res/values-pt/strings.xml
+++ b/astrid/src/main/res/values-pt/strings.xml
@@ -513,6 +513,7 @@ das tarefas através de um backup em Definições->Sincronização e backup-&
Tempo gasto:
Falar para criar uma tarefa
Falar para definir a descrição
+ Entrada por voz
Lembretes de voz
O Tasks irá reproduzir o nome da tarefa durante os lembretes
O Tasks irá reproduzir um toque durante os lembretes
diff --git a/astrid/src/main/res/values-ru/strings.xml b/astrid/src/main/res/values-ru/strings.xml
index c5b02c0f4..ece011729 100644
--- a/astrid/src/main/res/values-ru/strings.xml
+++ b/astrid/src/main/res/values-ru/strings.xml
@@ -512,6 +512,7 @@
Времени потрачено:
Говорите чтобы создать задачу
Произнесите заметки задачи
+ Голосовой ввод
Голосовые напоминания
Tasks должен произносить название задач во время напоминаний
Оповещение звуком во время напоминания
diff --git a/astrid/src/main/res/values-sl-rSI/strings.xml b/astrid/src/main/res/values-sl-rSI/strings.xml
index c8aa331cb..b30081342 100644
--- a/astrid/src/main/res/values-sl-rSI/strings.xml
+++ b/astrid/src/main/res/values-sl-rSI/strings.xml
@@ -509,6 +509,7 @@
Porabljen čas:
Glasovno ustvari opravek
Govorite za opis opravka
+ Vnos glasu
Glasovni opomniki
Aplikacija Opravki bo med opominjanjem glede opravkov izgovarjala nazive opravkov
Aplikacija Opravki bo med opominjanjem glede opravkov zvonila.
diff --git a/astrid/src/main/res/values-sv/strings.xml b/astrid/src/main/res/values-sv/strings.xml
index 51848b476..2b189fa64 100644
--- a/astrid/src/main/res/values-sv/strings.xml
+++ b/astrid/src/main/res/values-sv/strings.xml
@@ -494,6 +494,7 @@ och återställer dina aktuella uppgifter från en backup
Nedlagt tid:
Prata för att skapa uppgift
Prata för att sätta uppgiftens anteckningar
+ Röstindata
Röstpåminnelser
Tasks läser upp uppgifterna vid påminnelse
Tasks kommer att spela en ringsignal vid påminnelse
diff --git a/astrid/src/main/res/values-tr/strings.xml b/astrid/src/main/res/values-tr/strings.xml
index 88da72208..e89ac4f74 100644
--- a/astrid/src/main/res/values-tr/strings.xml
+++ b/astrid/src/main/res/values-tr/strings.xml
@@ -455,6 +455,7 @@
Harcanan zaman:
Yeni görev için konuş
Görev notları için konuş
+ Ses Girişi
Sesli Hatırlatmalar
Tasks görev isimlerini görev hatırlatmaları sırasında söyleyecek
Tasks görev hatırlatmaları sırasında zil sesi çalacak
diff --git a/astrid/src/main/res/values-uk/strings.xml b/astrid/src/main/res/values-uk/strings.xml
index 48136192d..77ed8bf43 100644
--- a/astrid/src/main/res/values-uk/strings.xml
+++ b/astrid/src/main/res/values-uk/strings.xml
@@ -495,6 +495,7 @@
Для %s діють таймери!
Таймер
Горовіть щоб створити завдання
+ Голосове введення
Голосові нагадування
Tasks повинен вимовляти назву завдань під час нагадувань
Оповіщення звуком під час нагадування
diff --git a/astrid/src/main/res/values-zh-rCN/strings.xml b/astrid/src/main/res/values-zh-rCN/strings.xml
index 280fd5ba1..80d3d4fce 100644
--- a/astrid/src/main/res/values-zh-rCN/strings.xml
+++ b/astrid/src/main/res/values-zh-rCN/strings.xml
@@ -437,6 +437,7 @@
已经花费时间:
请说话以建立任务
请说话以设定任务备注
+ 语音输入
语音提醒
Tasks在任务提醒时会以语音说出任务名称
Tasks在任务提醒时将会播放铃声
diff --git a/astrid/src/main/res/values-zh-rTW/strings.xml b/astrid/src/main/res/values-zh-rTW/strings.xml
index 0ee95144b..42083da0c 100644
--- a/astrid/src/main/res/values-zh-rTW/strings.xml
+++ b/astrid/src/main/res/values-zh-rTW/strings.xml
@@ -480,6 +480,7 @@
已經花費時間:
請說話以建立工作
請說話以設定工作備註
+ 語音輸入
語音提醒
Tasks在工作提醒時會以語音說出工作名稱
Tasks在工作提醒時將會播放鈴聲
diff --git a/astrid/src/main/res/values/strings-voice.xml b/astrid/src/main/res/values/strings-voice.xml
index fe072f56d..bd7bf4360 100644
--- a/astrid/src/main/res/values/strings-voice.xml
+++ b/astrid/src/main/res/values/strings-voice.xml
@@ -5,6 +5,7 @@
Speak to create a task
Speak to set task description
+ Voice input
Voice reminders