Camera: Use short form camera id for conflicting devices
The camera id in CameraService needs to be consistent with the ones in
conflicting device strings.
Strip the simple form camera id from the fully-qualified id.
Test: Camera CTS
Bug: 78277539
Change-Id: I081f36eaba4a0a3dc9ba3323eb386833566c15ba
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 077e05e..66e9196 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -783,6 +783,18 @@
name.c_str(), statusToString(status));
return nullptr;
}
+
+ for (auto& conflictName : resourceCost.conflictingDevices) {
+ uint16_t major, minor;
+ std::string type, id;
+ status_t res = parseDeviceName(conflictName, &major, &minor, &type, &id);
+ if (res != OK) {
+ ALOGE("%s: Failed to parse conflicting device %s", __FUNCTION__, conflictName.c_str());
+ return nullptr;
+ }
+ conflictName = id;
+ }
+
return std::unique_ptr<DeviceInfo>(
new DeviceInfoT(name, tagId, id, minorVersion, resourceCost,
cameraInterface));