Merge "Fix potential NPE in STHelper" into udc-dev

This commit is contained in:
Atneya Nair
2023-05-09 15:58:25 +00:00
committed by Android (Google) Code Review

View File

@@ -789,15 +789,15 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
return; return;
} }
ModelData model = getModelDataForLocked(event.soundModelHandle); ModelData model = getModelDataForLocked(event.soundModelHandle);
if (!Objects.equals(event.getToken(), model.getToken())) {
// Stale event, do nothing
return;
}
if (model == null || !model.isGenericModel()) { if (model == null || !model.isGenericModel()) {
Slog.w(TAG, "Generic recognition event: Model does not exist for handle: " Slog.w(TAG, "Generic recognition event: Model does not exist for handle: "
+ event.soundModelHandle); + event.soundModelHandle);
return; return;
} }
if (!Objects.equals(event.getToken(), model.getToken())) {
// Stale event, do nothing
return;
}
IRecognitionStatusCallback callback = model.getCallback(); IRecognitionStatusCallback callback = model.getCallback();
if (callback == null) { if (callback == null) {
@@ -875,11 +875,11 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
Slog.w(TAG, "Recognition aborted"); Slog.w(TAG, "Recognition aborted");
MetricsLogger.count(mContext, "sth_recognition_aborted", 1); MetricsLogger.count(mContext, "sth_recognition_aborted", 1);
ModelData modelData = getModelDataForLocked(event.soundModelHandle); ModelData modelData = getModelDataForLocked(event.soundModelHandle);
if (modelData != null && modelData.isModelStarted()) {
if (!Objects.equals(event.getToken(), modelData.getToken())) { if (!Objects.equals(event.getToken(), modelData.getToken())) {
// Stale event, do nothing // Stale event, do nothing
return; return;
} }
if (modelData != null && modelData.isModelStarted()) {
modelData.setStopped(); modelData.setStopped();
try { try {
IRecognitionStatusCallback callback = modelData.getCallback(); IRecognitionStatusCallback callback = modelData.getCallback();
@@ -916,16 +916,15 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener {
MetricsLogger.count(mContext, "sth_keyphrase_recognition_event", 1); MetricsLogger.count(mContext, "sth_keyphrase_recognition_event", 1);
int keyphraseId = getKeyphraseIdFromEvent(event); int keyphraseId = getKeyphraseIdFromEvent(event);
ModelData modelData = getKeyphraseModelDataLocked(keyphraseId); ModelData modelData = getKeyphraseModelDataLocked(keyphraseId);
if (!Objects.equals(event.getToken(), modelData.getToken())) {
// Stale event, do nothing
return;
}
if (modelData == null || !modelData.isKeyphraseModel()) { if (modelData == null || !modelData.isKeyphraseModel()) {
Slog.e(TAG, "Keyphase model data does not exist for ID:" + keyphraseId); Slog.e(TAG, "Keyphase model data does not exist for ID:" + keyphraseId);
return; return;
} }
if (!Objects.equals(event.getToken(), modelData.getToken())) {
// Stale event, do nothing
return;
}
if (modelData.getCallback() == null) { if (modelData.getCallback() == null) {
Slog.w(TAG, "Received onRecognition event without callback for keyphrase model."); Slog.w(TAG, "Received onRecognition event without callback for keyphrase model.");
return; return;