| 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
|
|
|