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
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index 837b4a4..386c3aa 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -128,6 +128,12 @@
}
@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 @@
}
}
+ void switchImplementationIfNeeded(boolean force) {
+ synchronized (this) {
+ switchImplementationIfNeededLocked(force);
+ }
+ }
+
void switchImplementationIfNeededLocked(boolean force) {
if (!mSafeMode) {
String curService = Settings.Secure.getStringForUser(