From 8db839c7f63bad03148b87baa06c89ebef82d7cf Mon Sep 17 00:00:00 2001 From: Atneya Nair Date: Sat, 6 May 2023 21:43:15 -0700 Subject: [PATCH] Invalidate recognition token if model is stopped If recognition is not active after receiving an event, invalidate the recognition token. Bug: 236826280 Bug: 275080257 Test: SoundTriggerManagerTest# testStartTriggerStopRecognitionRace_doesNotFail Change-Id: I070e7daf5af3dff30491ec9c387b7452cb2b9642 --- .../server/soundtrigger_middleware/SoundTriggerModule.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java b/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java index 083211c292830..f70268e1848ad 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java @@ -487,10 +487,11 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo if (mRecognitionToken == null) { return; } + event.token = mRecognitionToken; if (!event.recognitionEvent.recognitionStillActive) { setState(ModelState.LOADED); + mRecognitionToken = null; } - event.token = mRecognitionToken; callback = mCallback; } // The callback must be invoked outside of the lock. @@ -512,10 +513,11 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo if (mRecognitionToken == null) { return; } + event.token = mRecognitionToken; if (!event.phraseRecognitionEvent.common.recognitionStillActive) { setState(ModelState.LOADED); + mRecognitionToken = null; } - event.token = mRecognitionToken; callback = mCallback; } // The callback must be invoked outside of the lock.