Changing logic that generates virtual SENSOR_TYPE_LINEAR_ACCELERATION.
New logic only requires accel/gyro to be available rather than
accel/gyro/mag which is not necessary.
Bug: 145707966
Fix: 145707966
Test: Flashed a Hawk device (AAE development platform) that does not
have Linear Acceleration Sensor currently.
After flashing :
Linear Acceleration Sensor | AOSP | ver: 3 | type: android.sensor.linear_acceleration(10) | perm: n/a | flags: 0x00000000
continuous | maxDelay=0us | maxRate=500.00Hz | no batching | non-wakeUp |
Change-Id: Idfe7c1ab357e363cb2c8daf6e4175adbbcf9d8c4
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index 914a4cb..22a15c6 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -210,12 +210,6 @@
registerSensor(new RotationVectorSensor(), !needRotationVector, true);
registerSensor(new OrientationSensor(), !needRotationVector, true);
- bool needLinearAcceleration =
- (virtualSensorsNeeds & (1<<SENSOR_TYPE_LINEAR_ACCELERATION)) != 0;
-
- registerSensor(new LinearAccelerationSensor(list, count),
- !needLinearAcceleration, true);
-
// virtual debugging sensors are not for user
registerSensor( new CorrectedGyroSensor(list, count), true, true);
registerSensor( new GyroDriftSensor(), true, true);
@@ -225,6 +219,11 @@
bool needGravitySensor = (virtualSensorsNeeds & (1<<SENSOR_TYPE_GRAVITY)) != 0;
registerSensor(new GravitySensor(list, count), !needGravitySensor, true);
+ bool needLinearAcceleration =
+ (virtualSensorsNeeds & (1<<SENSOR_TYPE_LINEAR_ACCELERATION)) != 0;
+ registerSensor(new LinearAccelerationSensor(list, count),
+ !needLinearAcceleration, true);
+
bool needGameRotationVector =
(virtualSensorsNeeds & (1<<SENSOR_TYPE_GAME_ROTATION_VECTOR)) != 0;
registerSensor(new GameRotationVectorSensor(), !needGameRotationVector, true);