Merge "CameraService: Fix missing torch state callback"

gugelfrei
Treehugger Robot 6 years ago committed by Gerrit Code Review
commit 5a80267cc4

@ -208,6 +208,14 @@ void CameraService::pingCameraServiceProxy() {
proxyBinder->pingForUserUpdate(); proxyBinder->pingForUserUpdate();
} }
void CameraService::broadcastTorchModeStatus(const String8& cameraId, TorchModeStatus status) {
Mutex::Autolock lock(mStatusListenerLock);
for (auto& i : mListenerList) {
i->onTorchStatusChanged(mapToInterface(status), String16{cameraId});
}
}
CameraService::~CameraService() { CameraService::~CameraService() {
VendorTagDescriptor::clearGlobalVendorTagDescriptor(); VendorTagDescriptor::clearGlobalVendorTagDescriptor();
mUidPolicy->unregisterSelf(); mUidPolicy->unregisterSelf();
@ -246,6 +254,8 @@ void CameraService::addStates(const String8 id) {
if (mFlashlight->hasFlashUnit(id)) { if (mFlashlight->hasFlashUnit(id)) {
Mutex::Autolock al(mTorchStatusMutex); Mutex::Autolock al(mTorchStatusMutex);
mTorchStatusMap.add(id, TorchModeStatus::AVAILABLE_OFF); mTorchStatusMap.add(id, TorchModeStatus::AVAILABLE_OFF);
broadcastTorchModeStatus(id, TorchModeStatus::AVAILABLE_OFF);
} }
updateCameraNumAndIds(); updateCameraNumAndIds();
@ -398,12 +408,7 @@ void CameraService::onTorchStatusChangedLocked(const String8& cameraId,
} }
} }
{ broadcastTorchModeStatus(cameraId, newStatus);
Mutex::Autolock lock(mStatusListenerLock);
for (auto& i : mListenerList) {
i->onTorchStatusChanged(mapToInterface(newStatus), String16{cameraId});
}
}
} }
Status CameraService::getNumberOfCameras(int32_t type, int32_t* numCameras) { Status CameraService::getNumberOfCameras(int32_t type, int32_t* numCameras) {

@ -857,6 +857,8 @@ private:
static sp<hardware::ICameraServiceProxy> getCameraServiceProxy(); static sp<hardware::ICameraServiceProxy> getCameraServiceProxy();
static void pingCameraServiceProxy(); static void pingCameraServiceProxy();
void broadcastTorchModeStatus(const String8& cameraId,
hardware::camera::common::V1_0::TorchModeStatus status);
}; };
} // namespace android } // namespace android

Loading…
Cancel
Save