summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Thornton <thorntonc@google.com> 2015-10-15 01:33:36 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-10-15 01:33:36 +0000
commit11543a1b852e5e87d37f5fbe95131d0f1d9afbee (patch)
tree9c799957132d40d3ed526b73376933e351b92952
parent522222bc9bbfb6d62e101eaa6af2668277143e19 (diff)
parentea5ad4872ec9efb27c33796e60458b4a1e3905f4 (diff)
am ea5ad487: am d8ef44bc: Merge "Don\'t call StopRecognition when recognition was aborted." into mnc-dr-dev
* commit 'ea5ad4872ec9efb27c33796e60458b4a1e3905f4': Don't call StopRecognition when recognition was aborted.
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java
index 3ca0c84543d3..31d859f654ba 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java
@@ -87,6 +87,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
// This is an indirect indication of the microphone being open in some other application.
private boolean mServiceDisabled = false;
private boolean mStarted = false;
+ private boolean mRecognitionAborted = false;
private PowerSaveModeListener mPowerSaveModeListener;
SoundTriggerHelper(Context context) {
@@ -386,8 +387,9 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
private void onRecognitionAbortLocked() {
Slog.w(TAG, "Recognition aborted");
- // No-op
- // This is handled via service state changes instead.
+ // If abort has been called, the hardware has already stopped recognition, so we shouldn't
+ // call it again when we process the state change.
+ mRecognitionAborted = true;
}
private void onRecognitionFailureLocked() {
@@ -490,8 +492,13 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
}
return status;
} else {
- // Stop recognition.
- int status = mModule.stopRecognition(mCurrentSoundModelHandle);
+ // Stop recognition (only if we haven't been aborted).
+ int status = STATUS_OK;
+ if (!mRecognitionAborted) {
+ status = mModule.stopRecognition(mCurrentSoundModelHandle);
+ } else {
+ mRecognitionAborted = false;
+ }
if (status != SoundTrigger.STATUS_OK) {
Slog.w(TAG, "stopRecognition call failed with " + status);
if (notify) {