From d0a83b89a622eb4b568951113ea627ee8f484a36 Mon Sep 17 00:00:00 2001 From: Chris Thornton Date: Tue, 19 Jul 2016 18:56:15 -0700 Subject: [PATCH] SoundTriggerHelpoer: Send pause events on abort if a model is running. If the recognition was aborted due to the service state being set to false, clients were not made aware that the model had been stopped (but would get a resume event). Bug: 30233664 Change-Id: I9f663362ff142eadfd5ef727c5f0c941f8e9e89d --- .../android/server/soundtrigger/SoundTriggerHelper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java index 3779d8720a9d9..e89585ca52fdb 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java @@ -696,8 +696,13 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { Slog.w(TAG, "Recognition aborted"); MetricsLogger.count(mContext, "sth_recognition_aborted", 1); ModelData modelData = getModelDataForLocked(event.soundModelHandle); - if (modelData != null) { + if (modelData != null && modelData.isModelStarted()) { modelData.setStopped(); + try { + modelData.getCallback().onRecognitionPaused(); + } catch (RemoteException e) { + Slog.w(TAG, "RemoteException in onRecognitionPaused", e); + } } }