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(