From f080834bc4eb8438750a89371c2cea59874ed698 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 1 Jun 2022 16:56:46 -0400 Subject: [PATCH 2/2] camera: Implement property to override default camera Complement to the frameworks/base patch. Change-Id: I002bfa974bafc2cc01365eeea31c7a5dcb5a2028 --- .../common/CameraProviderManager.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp index 2f74df9770..5b7166d4c0 100644 --- a/services/camera/libcameraservice/common/CameraProviderManager.cpp +++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -208,6 +209,18 @@ std::vector CameraProviderManager::getAPI1CompatibleCameraDeviceIds std::sort(systemDeviceIds.begin(), systemDeviceIds.end(), sortFunc); deviceIds.insert(deviceIds.end(), publicDeviceIds.begin(), publicDeviceIds.end()); deviceIds.insert(deviceIds.end(), systemDeviceIds.begin(), systemDeviceIds.end()); + + // Default camera ID hack should match with android.hardware.camera2.CameraManager.sortCameraIds + // Note that the alt primary camera may not be available here due to filterLogicalCameraIdsLocked() + // in which case we will just ignore it. + int altPrimaryCameraId = base::GetIntProperty("persist.sys.alt_primary_camera", -1); + + if (altPrimaryCameraId > 0 && altPrimaryCameraId < (int) deviceIds.size()) { + std::string origPrimary = deviceIds[0]; + deviceIds[0] = deviceIds[altPrimaryCameraId]; + deviceIds[altPrimaryCameraId] = origPrimary; + } + return deviceIds; } -- 2.36.1