diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp index 1c1f5e6e4..f2bd66161 100644 --- a/services/camera/libcameraservice/Android.bp +++ b/services/camera/libcameraservice/Android.bp @@ -107,6 +107,7 @@ cc_library_shared { "android.hardware.camera.device@3.3", "android.hardware.camera.device@3.4", "android.hardware.camera.device@3.5", + "vendor.lucid.camera.motor@1.0", ], export_shared_lib_headers: [ diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index b20c9a49c..971ed54fc 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -76,6 +76,8 @@ #include "utils/TagMonitor.h" #include "utils/CameraThreadState.h" +#include + namespace { const char* kPermissionServiceName = "permission"; }; // namespace anonymous @@ -91,6 +93,7 @@ using hardware::ICameraServiceProxy; using hardware::ICameraServiceListener; using hardware::camera::common::V1_0::CameraDeviceStatus; using hardware::camera::common::V1_0::TorchModeStatus; +using vendor::lucid::camera::motor::V1_0::ICameraMotor; // ---------------------------------------------------------------------------- // Logging support -- this is for debugging only @@ -1551,6 +1554,11 @@ Status CameraService::connectHelper(const sp& cameraCb, const String8& } else { // Otherwise, add client to active clients list finishConnectLocked(client, partial); + + sp cameraMotor = ICameraMotor::getService(); + if (cameraMotor != nullptr) { + cameraMotor->onConnect(cameraId.string()); + } } } // lock is destroyed, allow further connect calls @@ -2422,6 +2430,11 @@ binder::Status CameraService::BasicClient::disconnect() { } mDisconnected = true; + sp cameraMotor = ICameraMotor::getService(); + if (cameraMotor != nullptr) { + cameraMotor->onDisconnect(mCameraIdStr.string()); + } + sCameraService->removeByClient(this); sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName)); sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA,