Camera: Use fully qualified name for camera eviction logic

The conflicting device names are fully qualified, but the current
camera id isn't. Make them consistent.

Test: Camera CTS
Bug: 78277539
Change-Id: I1baf8d39b95bb475ad6a25f2eae7d409efe5d239
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index c87b5eb..83e56b6 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -1055,8 +1055,16 @@
             return BAD_VALUE;
         }
 
+        std::string cameraName;
+        err = mCameraProviderManager->getCameraDeviceName(
+                std::string(cameraId.c_str()), cameraName);
+        if (err != OK) {
+            ALOGE("%s: Failed to find camera device name for id %s: %d",
+                  __FUNCTION__, cameraId.c_str(), err);
+            return err;
+        }
         // Make descriptor for incoming client
-        clientDescriptor = CameraClientManager::makeClientDescriptor(cameraId,
+        clientDescriptor = CameraClientManager::makeClientDescriptor(String8(cameraName.c_str()),
                 sp<BasicClient>{nullptr}, static_cast<int32_t>(state->getCost()),
                 state->getConflicting(),
                 priorityScores[priorityScores.size() - 1],
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 077e05e..9b1b131 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -391,6 +391,16 @@
     return ret;
 }
 
+status_t CameraProviderManager::getCameraDeviceName(const std::string& id, std::string& name) {
+    std::lock_guard<std::mutex> lock(mInterfaceMutex);
+
+    auto deviceInfo = findDeviceInfoLocked(id);
+    if (deviceInfo == nullptr) return NAME_NOT_FOUND;
+
+    name = deviceInfo->mName;
+    return OK;
+}
+
 status_t CameraProviderManager::addProviderLocked(const std::string& newProvider, bool expected) {
     for (const auto& providerInfo : mProviders) {
         if (providerInfo->mProviderName == newProvider) {
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.h b/services/camera/libcameraservice/common/CameraProviderManager.h
index bbe6789..43b69d5 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.h
+++ b/services/camera/libcameraservice/common/CameraProviderManager.h
@@ -230,6 +230,11 @@
             hardware::hidl_version minVersion = hardware::hidl_version{0,0},
             hardware::hidl_version maxVersion = hardware::hidl_version{1000,0}) const;
 
+    /*
+     * Get device name for a particular camera Id
+     */
+    status_t getCameraDeviceName(const std::string& id, std::string& name);
+
 private:
     // All private members, unless otherwise noted, expect mInterfaceMutex to be locked before use
     mutable std::mutex mInterfaceMutex;