Launch task edit after voice input

pull/253/head
Alex Baker 10 years ago
parent 8b2bd28ac9
commit df701d55ca

@ -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) {

@ -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);
}
}
}

@ -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() {

@ -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

@ -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);

@ -312,6 +312,7 @@
<string name="TEA_timer_comment_spent">Отделено време:</string>
<string name="voice_create_prompt">Говорете за да създадете задача</string>
<string name="voice_edit_note_prompt">Говорете за да зададете описание на задача</string>
<string name="EPr_voiceInputEnabled_title">Гласово въвеждане</string>
<string name="EPr_voiceRemindersEnabled_title">Гласови напомняния</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks ще изтоваря имената на задачите по време на напомняния за задача</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks ще изпълнява мелодия по време на напомняния за задача </string>

@ -501,6 +501,7 @@
<string name="TEA_timer_comment_spent">Benötigte Zeit:</string>
<string name="voice_create_prompt">Sprechen Sie, um eine Aufgabe anzulegen</string>
<string name="voice_edit_note_prompt">Sprechen Sie, um Aufgabennotizen zu setzen</string>
<string name="EPr_voiceInputEnabled_title">Spracheingabe aktivieren</string>
<string name="EPr_voiceRemindersEnabled_title">Sprach-Erinnerungen</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks wird Aufgabennamen bei der Erinnerung aussprechen</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks wird bei der Erinnerung einen Klingelton abspielen</string>

@ -367,6 +367,7 @@
<string name="TEA_timer_comment_spent">Χρόνος που πέρασε</string>
<string name="voice_create_prompt">Μιλήστε για να δημιουργήσετε καθήκον</string>
<string name="voice_edit_note_prompt">Μιλήστε για να οριίσετε περιγραφή καθήκοντος</string>
<string name="EPr_voiceInputEnabled_title">Εισαγωγή φωνής</string>
<string name="EPr_voiceRemindersEnabled_title">Φωνητικές υπενθυμίσεις</string>
<string name="widget_mini">Καθήκοντα</string>
<string name="EPr_use_dark_theme">Σκοτεινό θέμα</string>

@ -509,6 +509,7 @@ Tasks podría no avisarle cuanto venza una tarea.\n</string>
<string name="TEA_timer_comment_spent">Tiempo dedicado:</string>
<string name="voice_create_prompt">Hable para crear una tarea</string>
<string name="voice_edit_note_prompt">Hable para establecer notas de tarea</string>
<string name="EPr_voiceInputEnabled_title">Ingreso por voz</string>
<string name="EPr_voiceRemindersEnabled_title">Avisos de voz</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks dirá los nombres de las tareas durante los avisos</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks reproducirá un tono durante los recordatorios</string>

@ -503,6 +503,7 @@
<string name="TEA_timer_comment_spent">Temps passé :</string>
<string name="voice_create_prompt">Parlez pour créer une nouvelle tâche</string>
<string name="voice_edit_note_prompt">Parlez pour définir les notes de la tâche</string>
<string name="EPr_voiceInputEnabled_title">Entrée voix</string>
<string name="EPr_voiceRemindersEnabled_title">Rappels vocaux</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks donnera le nom de la tâche</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks sonnera pendant les rappels</string>

@ -449,6 +449,7 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
<string name="TEA_timer_comment_spent">Tempo speso:</string>
<string name="voice_create_prompt">Parla per creare un\'attività</string>
<string name="voice_edit_note_prompt">Parla per aggiungere le note</string>
<string name="EPr_voiceInputEnabled_title">Voce</string>
<string name="EPr_voiceRemindersEnabled_title">Promemoria vocali</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks pronuncerà il nome dell\'attività durante i promemoria</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks emetterà una suoneria durante i promemoria</string>

@ -504,6 +504,7 @@
<string name="TEA_timer_comment_spent">זמן שהושקע:</string>
<string name="voice_create_prompt">דַּבֵּר כדי ליצור משימה</string>
<string name="voice_edit_note_prompt">דַּבֵּר כדי לקבוע את ההערות למשימה</string>
<string name="EPr_voiceInputEnabled_title">קלט קולי</string>
<string name="EPr_voiceRemindersEnabled_title">תזכורות קוליות</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">אסטריד תאמר את שם המשימה כחלק מהתזכורת</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">אסטריד תשמיע נְעִימוֹן במתן תזכורות למשימות</string>

@ -511,6 +511,7 @@
<string name="TEA_timer_comment_spent">消費時間:</string>
<string name="voice_create_prompt">話してタスクを作成してください</string>
<string name="voice_edit_note_prompt">話してタスク概要を設定してください</string>
<string name="EPr_voiceInputEnabled_title">音声入力</string>
<string name="EPr_voiceRemindersEnabled_title">音声リマインダー</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks はタスクリマインダーでタスク名を話します</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks はタスクリマインダーで通知音を鳴らします</string>

@ -513,6 +513,7 @@
<string name="TEA_timer_comment_spent">소요 시간:</string>
<string name="voice_create_prompt">일정을 만들려면 말하세요</string>
<string name="voice_edit_note_prompt">일정의 내용을 말하세요</string>
<string name="EPr_voiceInputEnabled_title">음성 입력</string>
<string name="EPr_voiceRemindersEnabled_title">음성 알림</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">일정 알림기간 동안 일정 이름을 직접 말해 줍니다</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">일정 알림기간 동안 벨소리를 울려줍니다</string>

@ -230,6 +230,7 @@
<string name="TFE_workingOn">Oppgaver med tidtaker</string>
<string name="voice_create_prompt">Snakk for å skape en oppgave</string>
<string name="voice_edit_note_prompt">Snakk for å sette oppgavenotater</string>
<string name="EPr_voiceInputEnabled_title">Taleinndata</string>
<string name="EPr_voiceRemindersEnabled_title">Talepåminnelser</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks vil lese opp oppgaver ved påminnelse</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks vil spille en ringetone ved påminnelse</string>

@ -507,6 +507,7 @@
<string name="TEA_timer_comment_spent">Gebruikte tijd:</string>
<string name="voice_create_prompt">Spreek om taak te maken</string>
<string name="voice_edit_note_prompt">Spreek notities van taak in</string>
<string name="EPr_voiceInputEnabled_title">Spraakinvoer</string>
<string name="EPr_voiceRemindersEnabled_title">Gesproken herinneringen</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Bij herinneringen zullen de taaknamen uitgesproken worden</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Er wordt een geluid weergegeven bij herinneringen</string>

@ -508,6 +508,7 @@ i odzyskanie zadań z kopi zapasowej (Settings-&gt;Sync and backup-&gt;Backup-&g
<string name="TEA_timer_comment_spent">Czas spędzony:</string>
<string name="voice_create_prompt">Mów by utworzyć zadanie</string>
<string name="voice_edit_note_prompt">Mów by ustawić notatkę zadania</string>
<string name="EPr_voiceInputEnabled_title">Polecenia głosowe</string>
<string name="EPr_voiceRemindersEnabled_title">Przypomnienia głosowe</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks będzie mówił nazwę zadania podczas przypomnienia</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks będzie uruchamiał dzwonek podczas przypomnienia zadania</string>

@ -472,6 +472,7 @@
<string name="TEA_timer_comment_spent">Tempo gasto:</string>
<string name="voice_create_prompt">Fale para criar uma tarefa</string>
<string name="voice_edit_note_prompt">Fale para completar as notas da tarefa</string>
<string name="EPr_voiceInputEnabled_title">Entrada de voz</string>
<string name="EPr_voiceRemindersEnabled_title">Lembretes de voz</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks irá falar o nome das tarefas durante os lembretes</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks irá tocar um som durante o lembrete</string>

@ -513,6 +513,7 @@ das tarefas através de um backup em Definições-&gt;Sincronização e backup-&
<string name="TEA_timer_comment_spent">Tempo gasto:</string>
<string name="voice_create_prompt">Falar para criar uma tarefa</string>
<string name="voice_edit_note_prompt">Falar para definir a descrição</string>
<string name="EPr_voiceInputEnabled_title">Entrada por voz</string>
<string name="EPr_voiceRemindersEnabled_title">Lembretes de voz</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">O Tasks irá reproduzir o nome da tarefa durante os lembretes</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">O Tasks irá reproduzir um toque durante os lembretes</string>

@ -512,6 +512,7 @@
<string name="TEA_timer_comment_spent">Времени потрачено:</string>
<string name="voice_create_prompt">Говорите чтобы создать задачу</string>
<string name="voice_edit_note_prompt">Произнесите заметки задачи</string>
<string name="EPr_voiceInputEnabled_title">Голосовой ввод</string>
<string name="EPr_voiceRemindersEnabled_title">Голосовые напоминания</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks должен произносить название задач во время напоминаний</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Оповещение звуком во время напоминания</string>

@ -509,6 +509,7 @@
<string name="TEA_timer_comment_spent">Porabljen čas:</string>
<string name="voice_create_prompt">Glasovno ustvari opravek</string>
<string name="voice_edit_note_prompt">Govorite za opis opravka</string>
<string name="EPr_voiceInputEnabled_title">Vnos glasu</string>
<string name="EPr_voiceRemindersEnabled_title">Glasovni opomniki</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Aplikacija Opravki bo med opominjanjem glede opravkov izgovarjala nazive opravkov</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Aplikacija Opravki bo med opominjanjem glede opravkov zvonila.</string>

@ -494,6 +494,7 @@ och återställer dina aktuella uppgifter från en backup
<string name="TEA_timer_comment_spent">Nedlagt tid:</string>
<string name="voice_create_prompt">Prata för att skapa uppgift</string>
<string name="voice_edit_note_prompt">Prata för att sätta uppgiftens anteckningar</string>
<string name="EPr_voiceInputEnabled_title">Röstindata</string>
<string name="EPr_voiceRemindersEnabled_title">Röstpåminnelser</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks läser upp uppgifterna vid påminnelse</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks kommer att spela en ringsignal vid påminnelse</string>

@ -455,6 +455,7 @@
<string name="TEA_timer_comment_spent">Harcanan zaman:</string>
<string name="voice_create_prompt">Yeni görev için konuş</string>
<string name="voice_edit_note_prompt">Görev notları için konuş</string>
<string name="EPr_voiceInputEnabled_title">Ses Girişi</string>
<string name="EPr_voiceRemindersEnabled_title">Sesli Hatırlatmalar</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks görev isimlerini görev hatırlatmaları sırasında söyleyecek</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks görev hatırlatmaları sırasında zil sesi çalacak</string>

@ -495,6 +495,7 @@
<string name="TPl_notification">Для %s діють таймери!</string>
<string name="TEA_timer_controls">Таймер</string>
<string name="voice_create_prompt">Горовіть щоб створити завдання</string>
<string name="EPr_voiceInputEnabled_title">Голосове введення</string>
<string name="EPr_voiceRemindersEnabled_title">Голосові нагадування</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks повинен вимовляти назву завдань під час нагадувань</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Оповіщення звуком під час нагадування</string>

@ -437,6 +437,7 @@
<string name="TEA_timer_comment_spent">已经花费时间:</string>
<string name="voice_create_prompt">请说话以建立任务</string>
<string name="voice_edit_note_prompt">请说话以设定任务备注</string>
<string name="EPr_voiceInputEnabled_title">语音输入</string>
<string name="EPr_voiceRemindersEnabled_title">语音提醒</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks在任务提醒时会以语音说出任务名称</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks在任务提醒时将会播放铃声</string>

@ -480,6 +480,7 @@
<string name="TEA_timer_comment_spent">已經花費時間:</string>
<string name="voice_create_prompt">請說話以建立工作</string>
<string name="voice_edit_note_prompt">請說話以設定工作備註</string>
<string name="EPr_voiceInputEnabled_title">語音輸入</string>
<string name="EPr_voiceRemindersEnabled_title">語音提醒</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Tasks在工作提醒時會以語音說出工作名稱</string>
<string name="EPr_voiceRemindersEnabled_desc_disabled">Tasks在工作提醒時將會播放鈴聲</string>

@ -5,6 +5,7 @@
<string name="voice_create_prompt">Speak to create a task</string>
<string name="voice_edit_note_prompt">Speak to set task description</string>
<string name="EPr_voiceInputEnabled_title">Voice input</string>
<!-- slide 38f: Preference: Voice reminders if TTS-service is available -->
<string name="EPr_voiceRemindersEnabled_title">Voice reminders</string>
<!-- Preference: Voice reminders description (true) -->

Loading…
Cancel
Save