Merge "Fix ST recognition requested after start error" into udc-dev am: 7c33508eb0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22876900

Change-Id: Ic5353bcdebb07745d6cb932982d05d93443f51d7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Atneya Nair
2023-05-04 16:40:26 +00:00
committed by Automerger Merge Worker

View File

@@ -322,12 +322,31 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
modelData.setRunInBatterySaverMode(runInBatterySaverMode); modelData.setRunInBatterySaverMode(runInBatterySaverMode);
modelData.setSoundModel(soundModel); modelData.setSoundModel(soundModel);
if (!isRecognitionAllowedByDeviceState(modelData)) { if (isRecognitionAllowedByDeviceState(modelData)) {
return STATUS_OK; int startRecoResult = updateRecognitionLocked(modelData,
}
return updateRecognitionLocked(modelData,
false /* Don't notify for synchronous calls */); false /* Don't notify for synchronous calls */);
if (startRecoResult == SoundTrigger.STATUS_OK) {
return startRecoResult;
} else if (startRecoResult != SoundTrigger.STATUS_BUSY) {
// If we are returning an unexpected error, don't mark the model as requested
modelData.setRequested(false);
return startRecoResult;
}
}
// Either recognition isn't allowed by device state, or the module is busy.
// Dispatch a pause.
try {
if (callback != null) {
mEventLogger.enqueue(new SessionEvent(Type.PAUSE, modelData.getModelId()));
callback.onRecognitionPaused();
}
} catch (RemoteException e) {
mEventLogger.enqueue(new SessionEvent(
Type.PAUSE, modelData.getModelId(), "RemoteException")
.printLog(ALOGW, TAG));
forceStopAndUnloadModelLocked(modelData, e);
}
return STATUS_OK;
} }
} }