Index: device/generic_sensor/platform_sensor.cc |
diff --git a/device/generic_sensor/platform_sensor.cc b/device/generic_sensor/platform_sensor.cc |
index c982d7713d8b554ee30ce0d551c0fbeff67b3927..bca1fae37f9c6f07d63bd4c62d14b50c622839be 100644 |
--- a/device/generic_sensor/platform_sensor.cc |
+++ b/device/generic_sensor/platform_sensor.cc |
@@ -94,4 +94,26 @@ void PlatformSensor::NotifySensorError() { |
FOR_EACH_OBSERVER(Client, clients_, OnSensorError()); |
} |
+bool PlatformSensor::UpdateSensorInternal(const ConfigMap& configurations) { |
+ const PlatformSensorConfiguration* optimal_configuration = nullptr; |
+ for (const auto& pair : configurations) { |
+ if (pair.first->IsNotificationSuspended()) |
+ continue; |
+ |
+ const auto& conf_list = pair.second; |
+ for (const auto& configuration : conf_list) { |
+ if (!optimal_configuration || configuration > *optimal_configuration) { |
+ optimal_configuration = &configuration; |
+ } |
+ } |
+ } |
+ |
+ if (!optimal_configuration) { |
+ StopSensor(); |
+ return true; |
+ } |
+ |
+ return StartSensor(*optimal_configuration); |
+} |
+ |
} // namespace device |