From 8672d25e8a20cf7716eb6126279fa5d1572231a2 Mon Sep 17 00:00:00 2001 From: Ytai Ben-Tsvi Date: Tue, 14 Jan 2020 16:54:01 -0800 Subject: [PATCH] Correctly set the recognition state in response to GET_STATE A forced recognition does not stop recognition. SoundTriggerHelper had a bug where it assumed that it does, and so future interactions would assume the wrong state and would eventually erroneously use the underlying layers. Bug: 147568295 Change-Id: I5ae69a8b292fda6aadc6011c4bf5cbc4d263a1ca --- .../android/server/soundtrigger/SoundTriggerHelper.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java index bde2cfd52c0f0..7099c0935ee9f 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java @@ -756,7 +756,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); @@ -900,7 +902,9 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { return; } - modelData.setStopped(); + if (event.status != SoundTrigger.RECOGNITION_STATUS_GET_STATE_RESPONSE) { + modelData.setStopped(); + } try { modelData.getCallback().onKeyphraseDetected((KeyphraseRecognitionEvent) event);