summaryrefslogtreecommitdiffstats
path: root/services/sensorservice
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2011-11-05 19:33:18 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2011-11-05 19:33:18 +0000
commit5f43c96a7143be443bdfd1fd07eb400ae653d99e (patch)
treecab9aac67784bf1359d2013e1281d7c7d1ae8d8b /services/sensorservice
parenta4e1014d3658066516e6615f1dc78aecde6be291 (diff)
parent515c6b44d57b829792267594a355cd2831582197 (diff)
downloadframeworks_base-5f43c96a7143be443bdfd1fd07eb400ae653d99e.zip
frameworks_base-5f43c96a7143be443bdfd1fd07eb400ae653d99e.tar.gz
frameworks_base-5f43c96a7143be443bdfd1fd07eb400ae653d99e.tar.bz2
am 515c6b44: Merge "fix an issue where SensorService could request an invalid sensor delay" into ics-mr1
* commit '515c6b44d57b829792267594a355cd2831582197': fix an issue where SensorService could request an invalid sensor delay
Diffstat (limited to 'services/sensorservice')
-rw-r--r--services/sensorservice/SensorService.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index 57cb53c..11adbe2 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -471,14 +471,20 @@ status_t SensorService::setEventRate(const sp<SensorEventConnection>& connection
if (mInitCheck != NO_ERROR)
return mInitCheck;
+ SensorInterface* sensor = mSensorMap.valueFor(handle);
+ if (!sensor)
+ return BAD_VALUE;
+
if (ns < 0)
return BAD_VALUE;
+ if (ns == 0) {
+ ns = sensor->getSensor().getMinDelayNs();
+ }
+
if (ns < MINIMUM_EVENTS_PERIOD)
ns = MINIMUM_EVENTS_PERIOD;
- SensorInterface* sensor = mSensorMap.valueFor(handle);
- if (!sensor) return BAD_VALUE;
return sensor->setDelay(connection.get(), handle, ns);
}