Refactor the native RuntimeSensor API.
Return a status from the virtual sensor callback indicating whether
the callback invocation was successful.
Bug: 266042170
Test: atest CtsSensorTestCases
Change-Id: I001019c1915dc33db26e84444314d162a801fb9a
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index 5c98614..3a0329c 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -116,16 +116,17 @@
return nextHandle++;
}
-class RuntimeSensorCallbackProxy : public RuntimeSensor::StateChangeCallback {
+class RuntimeSensorCallbackProxy : public RuntimeSensor::SensorCallback {
public:
- RuntimeSensorCallbackProxy(sp<SensorService::RuntimeSensorStateChangeCallback> callback)
+ RuntimeSensorCallbackProxy(sp<SensorService::RuntimeSensorCallback> callback)
: mCallback(std::move(callback)) {}
- void onStateChanged(bool enabled, int64_t samplingPeriodNs,
- int64_t batchReportLatencyNs) override {
- mCallback->onStateChanged(enabled, samplingPeriodNs, batchReportLatencyNs);
+ status_t onConfigurationChanged(int handle, bool enabled, int64_t samplingPeriodNs,
+ int64_t batchReportLatencyNs) override {
+ return mCallback->onConfigurationChanged(handle, enabled, samplingPeriodNs,
+ batchReportLatencyNs);
}
private:
- sp<SensorService::RuntimeSensorStateChangeCallback> mCallback;
+ sp<SensorService::RuntimeSensorCallback> mCallback;
};
} // namespace
@@ -166,7 +167,7 @@
}
int SensorService::registerRuntimeSensor(
- const sensor_t& sensor, int deviceId, sp<RuntimeSensorStateChangeCallback> callback) {
+ const sensor_t& sensor, int deviceId, sp<RuntimeSensorCallback> callback) {
int handle = 0;
while (handle == 0 || !mSensors.isNewHandle(handle)) {
handle = nextRuntimeSensorHandle();
@@ -179,7 +180,7 @@
ALOGI("Registering runtime sensor handle 0x%x, type %d, name %s",
handle, sensor.type, sensor.name);
- sp<RuntimeSensor::StateChangeCallback> runtimeSensorCallback(
+ sp<RuntimeSensor::SensorCallback> runtimeSensorCallback(
new RuntimeSensorCallbackProxy(std::move(callback)));
sensor_t runtimeSensor = sensor;
// force the handle to be consistent