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(