speech: Allow long speech sessions
Bug: 204189031
Cts-Coverage-Bug: 204189031
Test: atest
Change-Id: I348fbcd701e8e7f94f3ef7a559ed8d323af112c8
diff --git a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/AbstractRecognitionServiceTest.java b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/AbstractRecognitionServiceTest.java
index 6debb44..a4dba5e 100644
--- a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/AbstractRecognitionServiceTest.java
+++ b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/AbstractRecognitionServiceTest.java
@@ -16,8 +16,10 @@
package android.voicerecognition.cts;
+import static android.voicerecognition.cts.CallbackMethod.CALLBACK_METHOD_END_SEGMENTED_SESSION;
import static android.voicerecognition.cts.CallbackMethod.CALLBACK_METHOD_ERROR;
import static android.voicerecognition.cts.CallbackMethod.CALLBACK_METHOD_RESULTS;
+import static android.voicerecognition.cts.CallbackMethod.CALLBACK_METHOD_SEGMENTS_RESULTS;
import static android.voicerecognition.cts.CallbackMethod.CALLBACK_METHOD_UNSPECIFIED;
import static android.voicerecognition.cts.RecognizerMethod.RECOGNIZER_METHOD_CANCEL;
import static android.voicerecognition.cts.RecognizerMethod.RECOGNIZER_METHOD_DESTROY;
@@ -172,6 +174,25 @@
}
@Test
+ public void setSequenceTest_startListening_segment_endofsession() {
+ executeSequenceTest(
+ /* service methods to call: */ ImmutableList.of(
+ RECOGNIZER_METHOD_START_LISTENING,
+ RECOGNIZER_METHOD_STOP_LISTENING
+ ),
+ /* callback methods to call: */ ImmutableList.of(
+ CALLBACK_METHOD_SEGMENTS_RESULTS,
+ CALLBACK_METHOD_END_SEGMENTED_SESSION
+ ),
+ /* expected service methods propagated: */ ImmutableList.of(true, true, true),
+ /* expected callback methods invoked: */ ImmutableList.of(
+ CALLBACK_METHOD_SEGMENTS_RESULTS,
+ CALLBACK_METHOD_END_SEGMENTED_SESSION
+ )
+ );
+ }
+
+ @Test
public void sequenceTest_startListening_cancel() {
executeSequenceTest(
/* service methods to call: */ ImmutableList.of(
diff --git a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CallbackMethod.java b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CallbackMethod.java
index b8622f4..fb6c0a5 100644
--- a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CallbackMethod.java
+++ b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CallbackMethod.java
@@ -25,5 +25,7 @@
CALLBACK_METHOD_PARTIAL_RESULTS,
CALLBACK_METHOD_READY_FOR_SPEECH,
CALLBACK_METHOD_RESULTS,
- CALLBACK_METHOD_RMS_CHANGED
+ CALLBACK_METHOD_RMS_CHANGED,
+ CALLBACK_METHOD_SEGMENTS_RESULTS,
+ CALLBACK_METHOD_END_SEGMENTED_SESSION
}
diff --git a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CtsRecognitionService.java b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CtsRecognitionService.java
index 5627c9d..375b360 100644
--- a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CtsRecognitionService.java
+++ b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/CtsRecognitionService.java
@@ -21,6 +21,7 @@
import static android.voicerecognition.cts.TestObjects.READY_FOR_SPEECH_BUNDLE;
import static android.voicerecognition.cts.TestObjects.RESULTS_BUNDLE;
import static android.voicerecognition.cts.TestObjects.RMS_CHANGED_VALUE;
+import static android.voicerecognition.cts.TestObjects.SEGMENT_RESULTS_BUNDLE;
import static com.google.common.truth.Truth.assertThat;
@@ -120,6 +121,12 @@
case CALLBACK_METHOD_RMS_CHANGED:
listener.rmsChanged(RMS_CHANGED_VALUE);
break;
+ case CALLBACK_METHOD_SEGMENTS_RESULTS:
+ listener.segmentResults(SEGMENT_RESULTS_BUNDLE);
+ break;
+ case CALLBACK_METHOD_END_SEGMENTED_SESSION:
+ listener.endOfSegmentedSession();
+ break;
default:
fail();
}
diff --git a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/SpeechRecognitionActivity.java b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/SpeechRecognitionActivity.java
index a9d506a..0efae9c 100644
--- a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/SpeechRecognitionActivity.java
+++ b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/SpeechRecognitionActivity.java
@@ -24,7 +24,8 @@
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
-import android.util.Log;
+
+import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
@@ -151,6 +152,16 @@
}
@Override
+ public void onSegmentResults(@NonNull Bundle segmentResults) {
+ mCallbackMethodsInvoked.add(CallbackMethod.CALLBACK_METHOD_SEGMENTS_RESULTS);
+ }
+
+ @Override
+ public void onEndOfSegmentedSession() {
+ mCallbackMethodsInvoked.add(CallbackMethod.CALLBACK_METHOD_END_SEGMENTED_SESSION);
+ }
+
+ @Override
public void onEvent(int eventType, Bundle params) {
}
}
diff --git a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/TestObjects.java b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/TestObjects.java
index b507f21..99fa452 100644
--- a/tests/tests/voiceRecognition/src/android/voicerecognition/cts/TestObjects.java
+++ b/tests/tests/voiceRecognition/src/android/voicerecognition/cts/TestObjects.java
@@ -41,4 +41,8 @@
static {
START_LISTENING_INTENT.putExtra("d", 'd');
}
+ public static final Bundle SEGMENT_RESULTS_BUNDLE = new Bundle();
+ static {
+ SEGMENT_RESULTS_BUNDLE.putChar("e", 'e');
+ }
}