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
This commit is contained in:
Atneya Nair
2023-05-06 21:43:15 -07:00
parent 8b973fb814
commit 8db839c7f6

View File

@@ -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.