Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855

Bug: 172690556
Merged-In: I07a657eaedce530a9817375081b2211b24b375aa
Change-Id: If7ef06566f557a57d5aae95480c2ea724917082c
diff --git a/Android.bp b/Android.bp
index eac88c9..849856e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,7 +1,11 @@
 java_library {
     name: "car-frameworks-service",
     installable: true,
-    libs: ["services"],
+
+    libs: [
+        "services",
+        "android.car.internal.event-log-tags",
+    ],
     required: ["libcar-framework-service-jni"],
     srcs: [
         "src/**/*.java",
@@ -9,7 +13,6 @@
     ],
     static_libs: [
         "android.hardware.automotive.vehicle-V2.0-java",
-        "android.car.internal.event-log-tags",
         "android.car.userlib",
         "android.car.watchdoglib",
         "carwatchdog_aidl_interface-java",
diff --git a/src/com/android/internal/car/CarServiceHelperService.java b/src/com/android/internal/car/CarServiceHelperService.java
index cd3c4f9..da96391 100644
--- a/src/com/android/internal/car/CarServiceHelperService.java
+++ b/src/com/android/internal/car/CarServiceHelperService.java
@@ -356,16 +356,18 @@
                     - Process.getStartElapsedRealtime();
             Slog.i(TAG, "Time to unlock 1st user(" + user + "): "
                     + TimeUtils.formatDuration(mFirstUnlockedUserDuration));
+            boolean operationQueued = false;
             synchronized (mLock) {
                 mLastUserLifecycle.put(userId, USER_LIFECYCLE_EVENT_TYPE_UNLOCKED);
                 if (mCarService == null) {
+                    operationQueued = true;
                     if (DBG) Slog.d(TAG, "Queuing first user unlock for user " + user);
                     queueOperationLocked(() -> sendFirstUserUnlocked(user));
-                    return;
                 }
             }
-            sendFirstUserUnlocked(user);
-            return;
+            if (!operationQueued) {
+                sendFirstUserUnlocked(user);
+            }
         }
         sendUserLifecycleEvent(USER_LIFECYCLE_EVENT_TYPE_UNLOCKED, user);
     }