diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index f687e4bb9567c..954b05c561d29 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -430,25 +430,17 @@ public class VoiceInteractionManagerService extends SystemService { // Eventually it will be an error to not specify this. setCurInteractor(new ComponentName(curInteractorInfo.getServiceInfo().packageName, curInteractorInfo.getServiceInfo().name), userHandle); - if (curInteractorInfo.getRecognitionService() != null) { - setCurRecognizer( - new ComponentName(curInteractorInfo.getServiceInfo().packageName, - curInteractorInfo.getRecognitionService()), userHandle); - return; - } + } else { + // No voice interactor, so clear the setting. + setCurInteractor(null, userHandle); } - // No voice interactor, we'll just set up a simple recognizer. - initSimpleRecognizer(curInteractorInfo, userHandle); + initRecognizer(userHandle); } - public void initSimpleRecognizer(VoiceInteractionServiceInfo curInteractorInfo, - int userHandle) { + public void initRecognizer(int userHandle) { ComponentName curRecognizer = findAvailRecognizer(null, userHandle); if (curRecognizer != null) { - if (curInteractorInfo == null) { - setCurInteractor(null, userHandle); - } setCurRecognizer(curRecognizer, userHandle); } } @@ -1772,7 +1764,9 @@ public class VoiceInteractionManagerService extends SystemService { synchronized (VoiceInteractionManagerServiceStub.this) { Slog.i(TAG, "Force stopping current voice recognizer: " + getCurRecognizer(userHandle)); - initSimpleRecognizer(null, userHandle); + // TODO: Figure out why the interactor was being cleared and document it. + setCurInteractor(null, userHandle); + initRecognizer(userHandle); } } return hitInt || hitRec; @@ -1843,10 +1837,7 @@ public class VoiceInteractionManagerService extends SystemService { if (curRecognizer == null) { // Could a new recognizer appear when we don't have one pre-installed? if (anyPackagesAppearing()) { - curRecognizer = findAvailRecognizer(null, userHandle); - if (curRecognizer != null) { - setCurRecognizer(curRecognizer, userHandle); - } + initRecognizer(userHandle); } return; }