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