From 37f9de996ee36f6d33930f765946dfcb44c23064 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 19 Apr 2016 17:04:28 -0700 Subject: [PATCH] Reinitialize voice interaction service on unlock Fixes the incomplete initialization on FBE devices when voice interaction service is not available before unlock. Change-Id: I397237e4554453d29da643aee59384e289fa3654 Fixes: 28183380 --- .../VoiceInteractionManagerService.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 837b4a4963ad2..386c3aa1b2a40 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -127,6 +127,12 @@ public class VoiceInteractionManagerService extends SystemService { mServiceStub.initForUser(userHandle); } + @Override + public void onUnlockUser(int userHandle) { + mServiceStub.initForUser(userHandle); + mServiceStub.switchImplementationIfNeeded(false); + } + @Override public void onSwitchUser(int userHandle) { mServiceStub.switchUser(userHandle); @@ -362,6 +368,12 @@ public class VoiceInteractionManagerService extends SystemService { } } + void switchImplementationIfNeeded(boolean force) { + synchronized (this) { + switchImplementationIfNeededLocked(force); + } + } + void switchImplementationIfNeededLocked(boolean force) { if (!mSafeMode) { String curService = Settings.Secure.getStringForUser(