Fix NPE when assistant component name is null

Also moves user ID retrieval to UserTracker instead of binder call.

Test: Ensure device is provisioned and assistant invocation is enabled
Test: Add new user
Test: Perform assistant invocation
Test: Observe that no crash occurs
BUG: 236751191
FIX: 236751191
Change-Id: I3d3bb12cbfdcc62ec62ddc0d54889e71f2d85704
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistLogger.kt b/packages/SystemUI/src/com/android/systemui/assist/AssistLogger.kt
index e30f2e4..7326ab3 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/assist/AssistLogger.kt
@@ -25,10 +25,10 @@
 import com.android.internal.logging.InstanceIdSequence
 import com.android.internal.logging.UiEventLogger
 import com.android.internal.util.FrameworkStatsLog
-import com.android.keyguard.KeyguardUpdateMonitor
 import com.android.systemui.assist.AssistantInvocationEvent.Companion.deviceStateFromLegacyDeviceState
 import com.android.systemui.assist.AssistantInvocationEvent.Companion.eventFromLegacyInvocationType
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.settings.UserTracker
 import javax.inject.Inject
 
 /** Class for reporting events related to Assistant sessions. */
@@ -37,7 +37,8 @@
     protected val context: Context,
     protected val uiEventLogger: UiEventLogger,
     private val assistUtils: AssistUtils,
-    private val phoneStateMonitor: PhoneStateMonitor
+    private val phoneStateMonitor: PhoneStateMonitor,
+    private val userTracker: UserTracker,
 ) {
 
     private val instanceIdSequence = InstanceIdSequence(INSTANCE_ID_MAX)
@@ -78,7 +79,7 @@
                 FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED,
                 invocationEvent.id,
                 assistantUid,
-                assistComponentFinal.flattenToString(),
+                assistComponentFinal?.flattenToString() ?: "",
                 getOrCreateInstanceId().id,
                 deviceStateFinal,
                 false)
@@ -91,7 +92,7 @@
         uiEventLogger.logWithInstanceId(
                 sessionEvent,
                 assistantUid,
-                assistantComponent.flattenToString(),
+                assistantComponent?.flattenToString(),
                 getOrCreateInstanceId())
 
         if (SESSION_END_EVENTS.contains(sessionEvent)) {
@@ -112,11 +113,15 @@
         currentInstanceId = null
     }
 
-    protected fun getAssistantComponentForCurrentUser(): ComponentName {
-        return assistUtils.getAssistComponentForUser(KeyguardUpdateMonitor.getCurrentUser())
+    protected fun getAssistantComponentForCurrentUser(): ComponentName? {
+        return assistUtils.getAssistComponentForUser(userTracker.userId)
     }
 
-    protected fun getAssistantUid(assistantComponent: ComponentName): Int {
+    protected fun getAssistantUid(assistantComponent: ComponentName?): Int {
+        if (assistantComponent == null) {
+            return 0
+        }
+
         var assistantUid = 0
         try {
             assistantUid = context.packageManager.getApplicationInfo(
@@ -138,4 +143,4 @@
                         AssistantSessionEvent.ASSISTANT_SESSION_INVOCATION_CANCELLED,
                         AssistantSessionEvent.ASSISTANT_SESSION_CLOSE)
     }
-}
\ No newline at end of file
+}