summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/android/sensormanager.cpp
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2022-08-11 11:16:10 +0300
committerJuha Vuolle <juha.vuolle@insta.fi>2022-08-12 11:02:45 +0300
commit6cc5b4ab300ed9446c3fec64e5b94c7c4ba69fbc (patch)
tree72de6e1e87d4f6a6cc528b659c158e12aa6c51ed /src/plugins/sensors/android/sensormanager.cpp
parentfdfacac08640e168ae7b47b3ee5d855b7f374351 (diff)
Unstringify QtSensors Android parts
Qt 6.4 introduced the new facilities to reduce the plain strings with Android methods/signatures. Fixes: QTBUG-104185 Change-Id: I28a2d588fdaff2ef6d2e0f55663d741ea6a0c4e5 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/sensors/android/sensormanager.cpp')
-rw-r--r--src/plugins/sensors/android/sensormanager.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/plugins/sensors/android/sensormanager.cpp b/src/plugins/sensors/android/sensormanager.cpp
index 66a61017..96d3cf1c 100644
--- a/src/plugins/sensors/android/sensormanager.cpp
+++ b/src/plugins/sensors/android/sensormanager.cpp
@@ -6,14 +6,17 @@
#include <dlfcn.h>
+Q_DECLARE_JNI_CLASS(AndroidContext, "android/content/Context")
+Q_DECLARE_JNI_TYPE(Sensor, "Landroid/hardware/Sensor;")
+
SensorManager::SensorManager()
{
- auto sensorService = QJniObject::getStaticObjectField("android.content.Context",
- "SENSOR_SERVICE", "Ljava/lang/String;");
+ auto sensorService =
+ QJniObject::getStaticField<QtJniTypes::AndroidContext, jstring>("SENSOR_SERVICE");
+
QJniObject context = QNativeInterface::QAndroidApplication::context();
- m_sensorManager = context.callObjectMethod("getSystemService",
- "(Ljava/lang/String;)Ljava/lang/Object;",
- sensorService.object());
+ m_sensorManager = context.callMethod<jobject>("getSystemService",
+ sensorService.object<jstring>());
setObjectName("QtSensorsLooperThread");
start();
m_waitForStart.acquire();
@@ -27,8 +30,8 @@ SensorManager::~SensorManager()
QJniObject SensorManager::javaSensor(const ASensor *sensor) const
{
- return m_sensorManager.callObjectMethod("getDefaultSensor", "(I)Landroid/hardware/Sensor;",
- ASensor_getType(sensor));
+ return m_sensorManager.callMethod<QtJniTypes::Sensor>("getDefaultSensor",
+ ASensor_getType(sensor));
}
QSharedPointer<SensorManager> &SensorManager::instance()
@@ -45,8 +48,8 @@ ALooper *SensorManager::looper() const
static inline ASensorManager* androidManager()
{
QJniObject context = QNativeInterface::QAndroidApplication::context();
- auto packageName = context.callObjectMethod("getPackageName", "()Ljava/lang/String;")
- .toString().toUtf8();
+ auto packageName = context.callMethod<jstring>("getPackageName").toString().toUtf8();
+
#if __ANDROID_API__ >= 26
return ASensorManager_getInstanceForPackage(packageName.constData());
#else