Introduce a speech processing progress dialog for long process times

pull/14/head
Sam Bosley 13 years ago
parent 28c8fe0645
commit 28ff49c591

@ -76,7 +76,8 @@ public class RecognizerApi implements RecognitionListener {
private AACEncoder encoder = new AACEncoder();
private long speechStarted = 0;
private SpeechRecognizer sr;
private ProgressDialog pd;
private ProgressDialog speakPd;
private ProgressDialog processingPd;
public void write() {
sr.setRecognitionListener(this);
@ -89,11 +90,11 @@ public class RecognizerApi implements RecognitionListener {
speechStarted = 0;
baos.reset();
pd = new ProgressDialog(context);
pd.setMessage("Speak now...");
pd.setIndeterminate(true);
pd.setCancelable(true);
pd.setOnCancelListener(new OnCancelListener() {
speakPd = new ProgressDialog(context);
speakPd.setMessage("Speak now...");
speakPd.setIndeterminate(true);
speakPd.setCancelable(true);
speakPd.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
sr.cancel();
@ -101,7 +102,7 @@ public class RecognizerApi implements RecognitionListener {
}
});
pd.show();
speakPd.show();
sr.startListening(intent);
speechStarted = System.currentTimeMillis();
@ -145,10 +146,21 @@ public class RecognizerApi implements RecognitionListener {
@Override
public void onEndOfSpeech() {
pd.dismiss();
speakPd.dismiss();
if(speechStarted == 0)
return;
processingPd = new ProgressDialog(context);
processingPd.setMessage("Processing...");
processingPd.setIndeterminate(true);
processingPd.setCancelable(true);
processingPd.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
sr.cancel();
}
});
long delta = System.currentTimeMillis() - speechStarted;
@ -188,6 +200,7 @@ public class RecognizerApi implements RecognitionListener {
@Override
public void onResults(Bundle results) {
processingPd.dismiss();
ArrayList<String> strings = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (mListener != null)
mListener.onSpeechResult(strings.size() == 0 ? "" : strings.get(0));

Loading…
Cancel
Save