| Index: device/generic_sensor/platform_sensor.cc
|
| diff --git a/device/generic_sensor/platform_sensor.cc b/device/generic_sensor/platform_sensor.cc
|
| index 5712abc5f6e61ea8af8140796c1f67a82ab38399..2c7e9f339250596947c6a8872a4581ec7142fdfb 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
|
|
|