Move RecognizerApi to astrid

pull/143/head
Alex Baker 11 years ago
parent 613633971d
commit 9528baf611

@ -19,7 +19,7 @@ import android.view.WindowManager.BadTokenException;
import android.widget.EditText;
import android.widget.Toast;
import com.todoroo.aacenc.RecognizerApi.RecognizerApiListener;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;

@ -23,8 +23,8 @@ import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
import com.todoroo.aacenc.RecognizerApi;
import com.todoroo.aacenc.RecognizerApi.PlaybackExceptionHandler;
import com.todoroo.astrid.voice.RecognizerApi;
import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
@ -196,7 +196,7 @@ public class FilesControlSet extends PopupControlSet {
final String filePath = m.getFilePath();
if (fileType.startsWith(TaskAttachment.FILE_TYPE_AUDIO)) {
RecognizerApi.play(activity, m.getFilePath(), new PlaybackExceptionHandler() {
RecognizerApi.play(m.getFilePath(), new PlaybackExceptionHandler() {
@Override
public void playbackFailed(String file) {
showFromIntent(filePath, fileType);

@ -1,7 +1,6 @@
package com.todoroo.aacenc;
package com.todoroo.astrid.voice;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
@ -21,30 +20,31 @@ import java.util.ArrayList;
@TargetApi(8)
public class RecognizerApi implements RecognitionListener {
public static interface PlaybackExceptionHandler {
public void playbackFailed(String file);
}
public static interface PlaybackExceptionHandler {
public void playbackFailed(String file);
}
private Context context;
public static interface RecognizerApiListener {
public void onSpeechResult(String result);
public void onSpeechError(int error);
public void onSpeechResult(String result);
public void onSpeechError(int error);
}
private RecognizerApiListener mListener;
public RecognizerApi(Context context) {
this.context = context;
this.context = context;
sr = SpeechRecognizer.createSpeechRecognizer(context);
sr = SpeechRecognizer.createSpeechRecognizer(context);
}
public void setListener(RecognizerApiListener listener) {
this.mListener = listener;
this.mListener = listener;
}
public static void play(Activity activity, String file, PlaybackExceptionHandler handler) {
public static void play(String file, PlaybackExceptionHandler handler) {
MediaPlayer mediaPlayer = new MediaPlayer();
try {
@ -52,7 +52,7 @@ public class RecognizerApi implements RecognitionListener {
mediaPlayer.prepare();
mediaPlayer.start();
} catch (Exception e) {
handler.playbackFailed(file);
handler.playbackFailed(file);
}
}
@ -61,14 +61,7 @@ public class RecognizerApi implements RecognitionListener {
private ProgressDialog speakPd;
private ProgressDialog processingPd;
/**
* Start speech recognition
*
* @param callingPackage e.g. com.myapp.example
* @param speakNowMessage e.g. "Speak now!"
* @param processingMessage e.g. "Processing..."
*/
public void start(String callingPackage, String speakNowMessage, String processingMessage) {
public void start(String callingPackage, String speakNowMessage) {
sr.setRecognitionListener(this);
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
@ -98,12 +91,12 @@ public class RecognizerApi implements RecognitionListener {
}
public void cancel() {
sr.cancel();
sr.cancel();
}
public void destroy() {
sr.setRecognitionListener(null);
sr.destroy();
sr.setRecognitionListener(null);
sr.destroy();
}
// --- RecognitionListener methods --- //
@ -116,7 +109,7 @@ public class RecognizerApi implements RecognitionListener {
@Override
public void onBufferReceived(byte[] buffer) {
if(speechStarted > 0) {
if (speechStarted > 0) {
try {
baos.write(buffer);
} catch (IOException e) {
@ -129,7 +122,7 @@ public class RecognizerApi implements RecognitionListener {
public void onEndOfSpeech() {
speakPd.dismiss();
if(speechStarted == 0)
if (speechStarted == 0)
return;
processingPd = new ProgressDialog(context);
@ -147,8 +140,9 @@ public class RecognizerApi implements RecognitionListener {
@Override
public void onError(int error) {
if (mListener != null)
mListener.onSpeechError(error);
if (mListener != null) {
mListener.onSpeechError(error);
}
Log.w("Speech Error", "Error code: " + error);
}
@ -168,10 +162,11 @@ public class RecognizerApi implements RecognitionListener {
@Override
public void onResults(Bundle results) {
processingPd.dismiss();
processingPd.dismiss();
ArrayList<String> strings = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (mListener != null)
mListener.onSpeechResult(strings.size() == 0 ? "" : strings.get(0));
if (mListener != null) {
mListener.onSpeechResult(strings == null || strings.size() == 0 ? "" : strings.get(0));
}
}
@Override

@ -16,8 +16,7 @@ import android.support.v4.app.Fragment;
import android.widget.EditText;
import android.widget.ImageButton;
import com.todoroo.aacenc.RecognizerApi;
import com.todoroo.aacenc.RecognizerApi.RecognizerApiListener;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.utility.Constants;
@ -81,8 +80,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),
context.getString(R.string.audio_encoding));
context.getString(R.string.audio_speak_now));
} else {
int prompt = R.string.voice_edit_title_prompt;
if (Preferences.getBoolean(R.string.p_voiceInputCreatesTask, false)) {

Loading…
Cancel
Save