diff options
-rw-r--r-- | services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java index d6b40aecf52e..38efc743fe34 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java @@ -622,6 +622,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { onRecognitionFailureLocked(); break; case SoundTrigger.RECOGNITION_STATUS_SUCCESS: + case SoundTrigger.RECOGNITION_STATUS_GET_STATE_RESPONSE: if (isKeyphraseRecognitionEvent(event)) { onKeyphraseRecognitionSuccessLocked((KeyphraseRecognitionEvent) event); } else { @@ -638,7 +639,8 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { private void onGenericRecognitionSuccessLocked(GenericRecognitionEvent event) { MetricsLogger.count(mContext, "sth_generic_recognition_event", 1); - if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS) { + if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS + && event.status != SoundTrigger.RECOGNITION_STATUS_GET_STATE_RESPONSE) { return; } ModelData model = getModelDataForLocked(event.soundModelHandle); @@ -655,7 +657,9 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { return; } - model.setStopped(); + if (event.status != SoundTrigger.RECOGNITION_STATUS_GET_STATE_RESPONSE) { + model.setStopped(); + } try { callback.onGenericSoundTriggerDetected((GenericRecognitionEvent) event); } catch (DeadObjectException e) { @@ -797,7 +801,10 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { Slog.w(TAG, "Received onRecognition event without callback for keyphrase model."); return; } - modelData.setStopped(); + + if (event.status != SoundTrigger.RECOGNITION_STATUS_GET_STATE_RESPONSE) { + modelData.setStopped(); + } try { modelData.getCallback().onKeyphraseDetected((KeyphraseRecognitionEvent) event); |