Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: device/generic_sensor/sensor_impl.cc

Issue 2927263002: Add |notify_client_on_reading_change| flag to sensor configuration (Closed)
Patch Set: address more comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/generic_sensor/sensor_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/generic_sensor/sensor_impl.cc
diff --git a/device/generic_sensor/sensor_impl.cc b/device/generic_sensor/sensor_impl.cc
index 33e9cd0bb2a0f14e81f6cbcdaedfbe5e4c4da948..7ef579ac96b20734885131235923b45304f0b6f5 100644
--- a/device/generic_sensor/sensor_impl.cc
+++ b/device/generic_sensor/sensor_impl.cc
@@ -11,7 +11,9 @@
namespace device {
SensorImpl::SensorImpl(scoped_refptr<PlatformSensor> sensor)
- : sensor_(std::move(sensor)), suspended_(false) {
+ : sensor_(std::move(sensor)),
+ suspended_(false),
+ suppress_on_change_events_count_(0) {
sensor_->AddClient(this);
}
@@ -28,7 +30,10 @@ void SensorImpl::AddConfiguration(
AddConfigurationCallback callback) {
// TODO(Mikhail): To avoid overflowing browser by repeated AddConfigs
// (maybe limit the number of configs per client).
- std::move(callback).Run(sensor_->StartListening(this, configuration));
+ bool success = sensor_->StartListening(this, configuration);
+ if (success && configuration.suppress_on_change_events())
+ ++suppress_on_change_events_count_;
+ std::move(callback).Run(success);
}
void SensorImpl::GetDefaultConfiguration(
@@ -39,7 +44,10 @@ void SensorImpl::GetDefaultConfiguration(
void SensorImpl::RemoveConfiguration(
const PlatformSensorConfiguration& configuration,
RemoveConfigurationCallback callback) {
- std::move(callback).Run(sensor_->StopListening(this, configuration));
+ bool success = sensor_->StopListening(this, configuration);
+ if (success && configuration.suppress_on_change_events())
+ --suppress_on_change_events_count_;
+ std::move(callback).Run(success);
}
void SensorImpl::Suspend() {
@@ -54,7 +62,7 @@ void SensorImpl::Resume() {
void SensorImpl::OnSensorReadingChanged() {
DCHECK(!suspended_);
- if (client_)
+ if (client_ && !suppress_on_change_events_count_)
Reilly Grant (use Gerrit) 2017/06/09 22:57:14 nit: this isn't a boolean, I would say suppress_on
juncai 2017/06/09 23:11:32 Done.
client_->SensorReadingChanged();
}
« no previous file with comments | « device/generic_sensor/sensor_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698