From e60743e095b8bb7fcc3f0de823d2a46aa68343d3 Mon Sep 17 00:00:00 2001 From: Andrew Inwood Date: Tue, 1 Apr 2014 13:40:08 -0400 Subject: Android, Fix generic access to QAccelerometer Generic access to QAccelerometer through QSensor was broken by my previous change: 971fc95eca1d9db93aa4bdb75793dfe83e4a97db When using a QSensor* to access the accelerometer, the qobject_cast would fail, and return 0. I fix this by defaulting the accelerationMode to Combined when a QSensor* is used. Change-Id: If8389808a416807b72709a13ca315aa23bbf94a0 Reviewed-by: Bernd Weimer Reviewed-by: Fabian Bumberger Reviewed-by: Lorn Potter --- src/plugins/sensors/android/src/androidaccelerometer.cpp | 2 +- src/plugins/sensors/android/src/main.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/sensors/android/src/androidaccelerometer.cpp b/src/plugins/sensors/android/src/androidaccelerometer.cpp index 5a42d0cb..76aa0278 100644 --- a/src/plugins/sensors/android/src/androidaccelerometer.cpp +++ b/src/plugins/sensors/android/src/androidaccelerometer.cpp @@ -89,8 +89,8 @@ AndroidSensors::AndroidSensorType AndroidAccelerometer::modeToSensor(QAccelerome case QAccelerometer::User: type = AndroidSensors::TYPE_LINEAR_ACCELERATION; break; - default: case QAccelerometer::Combined: + default: type = AndroidSensors::TYPE_ACCELEROMETER; break; } diff --git a/src/plugins/sensors/android/src/main.cpp b/src/plugins/sensors/android/src/main.cpp index 3326208b..3d8604fe 100644 --- a/src/plugins/sensors/android/src/main.cpp +++ b/src/plugins/sensors/android/src/main.cpp @@ -112,10 +112,11 @@ public: { AndroidSensorType type = static_cast(sensor->identifier().toInt()); switch (type) { - case TYPE_ACCELEROMETER: - { + case TYPE_ACCELEROMETER: { QAccelerometer * const accelerometer = qobject_cast(sensor); - AndroidSensors::AndroidSensorType type = AndroidAccelerometer::modeToSensor(accelerometer->accelerationMode()); + AndroidSensors::AndroidSensorType type + = accelerometer ? AndroidAccelerometer::modeToSensor(accelerometer->accelerationMode()) + : AndroidSensors::TYPE_ACCELEROMETER; return new AndroidAccelerometer(type, sensor); } case TYPE_AMBIENT_TEMPERATURE: -- cgit v1.2.3