From cd1fc0b6ed27906c15b8f0e7f7e1b8cab147a3c3 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Fri, 20 May 2016 14:47:09 +0200 Subject: QCoverSensorGestureRecognizer: sanitize initialization. Coverity noticed uninitialized members (CID 22309). Eliminate members handler (never accessed or set; the code always uses QtSensorGestureSensorHandler::instance() instead) and lastTs (set but never accessed). Initialized timer (to 0; it'll be set more sensibly as long as create() gets called). Reformatted constructor. Change-Id: I41738ec51db94fb35e068af509e9a34bf9221770 Reviewed-by: Lorn Potter --- .../qtsensors/qcoversensorgesturerecognizer.cpp | 11 +++++++---- .../sensorgestures/qtsensors/qcoversensorgesturerecognizer.h | 2 -- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp index ba010048..5b846c5a 100644 --- a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp +++ b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp @@ -36,9 +36,13 @@ QT_BEGIN_NAMESPACE -QCoverSensorGestureRecognizer::QCoverSensorGestureRecognizer(QObject *parent) : - QSensorGestureRecognizer(parent), - orientationReading(0), proximityReading(0),active(0), detecting(0) +QCoverSensorGestureRecognizer::QCoverSensorGestureRecognizer(QObject *parent) + : QSensorGestureRecognizer(parent), + orientationReading(0), + proximityReading(0), + timer(0), + active(0), + detecting(0) { } @@ -114,7 +118,6 @@ void QCoverSensorGestureRecognizer::proximityChanged(QProximityReading *reading) detecting = true; } } - lastTs = reading->timestamp(); } void QCoverSensorGestureRecognizer::orientationReadingChanged(QOrientationReading *reading) diff --git a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h index 3425ba32..220e83a5 100644 --- a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h +++ b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h @@ -70,10 +70,8 @@ private: bool proximityReading; QTimer *timer; - QtSensorGestureSensorHandler *handler; bool active; bool detecting; - qreal lastTs; }; QT_END_NAMESPACE -- cgit v1.2.3 From 79d3d49c4c4bf1d07f377d24d8c6e571abe80355 Mon Sep 17 00:00:00 2001 From: Ralf Nolden Date: Sat, 28 May 2016 13:30:33 +0200 Subject: OpenBSD: librt.so is not available on system OpenBSD does not provide librt.so for the sensors module, which leads to linker errors in this case. Disable linking to librt.so by adding !openbsd to the list of OSes not having it. Change-Id: If7b33eb33b4027be79bce4bb3272bef3a5b7d832 Reviewed-by: Thiago Macieira --- src/plugins/sensors/dummy/dummy.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins') diff --git a/src/plugins/sensors/dummy/dummy.pro b/src/plugins/sensors/dummy/dummy.pro index b4ef2fda..6eab4912 100644 --- a/src/plugins/sensors/dummy/dummy.pro +++ b/src/plugins/sensors/dummy/dummy.pro @@ -12,7 +12,7 @@ SOURCES += dummycommon.cpp\ OTHER_FILES = plugin.json -unix:!mac:!qnx:!android:LIBS+=-lrt +unix:!darwin:!qnx:!android:!openbsd: LIBS += -lrt PLUGIN_TYPE = sensors PLUGIN_CLASS_NAME = dummySensorPlugin -- cgit v1.2.3 From 6221ea85ec76566125b9c5e427a66ff13e8f5867 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 21 Jun 2016 14:39:28 -0700 Subject: Use QDateTime::currentMSecsSinceEpoch() instead of currentDateTime More efficient if all you want is the number of seconds. Change-Id: Ib57b52598e2f452985e9fffd145a371003ede342 Reviewed-by: Lorn Potter --- src/plugins/sensors/simulator/simulatoraccelerometer.cpp | 2 +- src/plugins/sensors/simulator/simulatorambientlightsensor.cpp | 2 +- src/plugins/sensors/simulator/simulatorcompass.cpp | 2 +- src/plugins/sensors/simulator/simulatorirproximitysensor.cpp | 2 +- src/plugins/sensors/simulator/simulatorlightsensor.cpp | 2 +- src/plugins/sensors/simulator/simulatormagnetometer.cpp | 2 +- src/plugins/sensors/simulator/simulatorproximitysensor.cpp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/sensors/simulator/simulatoraccelerometer.cpp b/src/plugins/sensors/simulator/simulatoraccelerometer.cpp index 9d2c9290..481128f4 100644 --- a/src/plugins/sensors/simulator/simulatoraccelerometer.cpp +++ b/src/plugins/sensors/simulator/simulatoraccelerometer.cpp @@ -54,7 +54,7 @@ void SimulatorAccelerometer::poll() QtMobility::QAccelerometerReadingData data = SensorsConnection::instance()->qtAccelerometerData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.x() != data.x diff --git a/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp b/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp index fa6f4878..177684fe 100644 --- a/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp +++ b/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp @@ -76,7 +76,7 @@ void SimulatorAmbientLightSensor::poll() quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.lightLevel() != convertedLightLevel) { diff --git a/src/plugins/sensors/simulator/simulatorcompass.cpp b/src/plugins/sensors/simulator/simulatorcompass.cpp index a64f3a11..fc68c513 100644 --- a/src/plugins/sensors/simulator/simulatorcompass.cpp +++ b/src/plugins/sensors/simulator/simulatorcompass.cpp @@ -54,7 +54,7 @@ void SimulatorCompass::poll() QtMobility::QCompassReadingData data = SensorsConnection::instance()->qtCompassData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.azimuth() != data.azimuth diff --git a/src/plugins/sensors/simulator/simulatorirproximitysensor.cpp b/src/plugins/sensors/simulator/simulatorirproximitysensor.cpp index 02594370..4499128f 100644 --- a/src/plugins/sensors/simulator/simulatorirproximitysensor.cpp +++ b/src/plugins/sensors/simulator/simulatorirproximitysensor.cpp @@ -54,7 +54,7 @@ void SimulatorIRProximitySensor::poll() QtMobility::QIRProximityReadingData data = SensorsConnection::instance()->qtIRProximityData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.reflectance() != data.irProximity) { diff --git a/src/plugins/sensors/simulator/simulatorlightsensor.cpp b/src/plugins/sensors/simulator/simulatorlightsensor.cpp index bdcfadf4..40d9edbd 100644 --- a/src/plugins/sensors/simulator/simulatorlightsensor.cpp +++ b/src/plugins/sensors/simulator/simulatorlightsensor.cpp @@ -54,7 +54,7 @@ void SimulatorLightSensor::poll() QtMobility::QLightReadingData data = SensorsConnection::instance()->qtLightData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.lux() != data.lux) { diff --git a/src/plugins/sensors/simulator/simulatormagnetometer.cpp b/src/plugins/sensors/simulator/simulatormagnetometer.cpp index c3f2c8ac..64a31776 100644 --- a/src/plugins/sensors/simulator/simulatormagnetometer.cpp +++ b/src/plugins/sensors/simulator/simulatormagnetometer.cpp @@ -54,7 +54,7 @@ void SimulatorMagnetometer::poll() QtMobility::QMagnetometerReadingData data = SensorsConnection::instance()->qtMagnetometerData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.x() != data.x diff --git a/src/plugins/sensors/simulator/simulatorproximitysensor.cpp b/src/plugins/sensors/simulator/simulatorproximitysensor.cpp index 74a35f61..b4430959 100644 --- a/src/plugins/sensors/simulator/simulatorproximitysensor.cpp +++ b/src/plugins/sensors/simulator/simulatorproximitysensor.cpp @@ -54,7 +54,7 @@ void SimulatorProximitySensor::poll() QtMobility::QProximityReadingData data = SensorsConnection::instance()->qtProximityData; quint64 newTimestamp; if (!data.timestamp.isValid()) - newTimestamp = QDateTime::currentDateTime().toTime_t(); + newTimestamp = QDateTime::currentMSecsSinceEpoch() / 1000; else newTimestamp = data.timestamp.toTime_t(); if (m_reading.close() != data.close) { -- cgit v1.2.3 From 8b79fc4ee1c0510c13dc6f1494f37727e3f8c0cf Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 20 Jul 2016 15:51:07 +0300 Subject: Make sure JNI_OnLoad is not called more than once Since Android 5.0 Google introduce a nasty bug[1] which calls JNI_OnLoad more than once. Basically every time when a library is loaded JNI_OnLoad is called if found, but it calls *again* JNI_OnLoad of its .so dependencies! [1] Workaround https://code.google.com/p/android/issues/detail?id=215069 Change-Id: I34728572bc279581b8c95c42c206ed104bfc09a5 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/sensors/android/src/androidjnisensors.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/plugins') diff --git a/src/plugins/sensors/android/src/androidjnisensors.cpp b/src/plugins/sensors/android/src/androidjnisensors.cpp index 98f408a9..ce69e757 100644 --- a/src/plugins/sensors/android/src/androidjnisensors.cpp +++ b/src/plugins/sensors/android/src/androidjnisensors.cpp @@ -241,6 +241,11 @@ static bool registerNatives(JNIEnv *env) Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) { + static bool initialized = false; + if (initialized) + return JNI_VERSION_1_6; + initialized = true; + typedef union { JNIEnv *nativeEnvironment; void *venv; -- cgit v1.2.3 From e03c37077ea4841b9e0b591d29a34737d7d8dd32 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 18 Jul 2016 16:55:52 +0300 Subject: This module doesn't need an Activity to work, a Context object is enough Task-number: QTBUG-54506 Change-Id: I83576e79f12556479a43aac95123edcacd50c63c Reviewed-by: Alex Blasche Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../jar/src/org/qtproject/qt5/android/sensors/QtSensors.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java index 75f2e933..3067d401 100644 --- a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java +++ b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java @@ -42,7 +42,7 @@ package org.qtproject.qt5.android.sensors; import java.util.HashSet; import java.util.List; -import android.app.Activity; +import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -58,10 +58,10 @@ public class QtSensors implements SensorEventListener static SensorManager m_sensorManager = null; static SparseArray m_registeredSensors = new SparseArray(); static Object m_syncObject = new Object(); - static public void setActivity(Activity activity, Object acitvityDelegate) + static public void setContext(Context context) { try { - m_sensorManager = (SensorManager)activity.getSystemService(Activity.SENSOR_SERVICE); + m_sensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); } catch(Exception e) { e.printStackTrace(); } -- cgit v1.2.3