Index: chromeos/accelerometer/accelerometer_reader.cc |
diff --git a/chromeos/accelerometer/accelerometer_reader.cc b/chromeos/accelerometer/accelerometer_reader.cc |
index 4d68ebf0957ec5c811208b2430604a27e489a0da..7868b54680032d4870c6f406363743545da948e2 100644 |
--- a/chromeos/accelerometer/accelerometer_reader.cc |
+++ b/chromeos/accelerometer/accelerometer_reader.cc |
@@ -203,7 +203,8 @@ void AccelerometerReader::Initialize( |
void AccelerometerReader::AddObserver(Observer* observer) { |
observers_.AddObserver(observer); |
- observer->OnAccelerometerUpdated(update_); |
+ if (successful_reading_) |
+ observer->OnAccelerometerUpdated(update_); |
} |
void AccelerometerReader::RemoveObserver(Observer* observer) { |
@@ -211,7 +212,8 @@ void AccelerometerReader::RemoveObserver(Observer* observer) { |
} |
AccelerometerReader::AccelerometerReader() |
- : configuration_(new AccelerometerReader::Configuration()), |
+ : successful_reading_(false), |
+ configuration_(new AccelerometerReader::Configuration()), |
weak_factory_(this) { |
} |
@@ -245,6 +247,7 @@ void AccelerometerReader::OnDataRead( |
DCHECK(!task_runner_->RunsTasksOnCurrentThread()); |
if (success) { |
+ successful_reading_ = true; |
for (int i = 0; i < ACCELEROMETER_SOURCE_COUNT; ++i) { |
if (!configuration_->data.has[i]) |
continue; |