diff options
author | Juha Vuolle <juha.vuolle@insta.fi> | 2022-08-11 11:16:10 +0300 |
---|---|---|
committer | Juha Vuolle <juha.vuolle@insta.fi> | 2022-08-12 11:02:45 +0300 |
commit | 6cc5b4ab300ed9446c3fec64e5b94c7c4ba69fbc (patch) | |
tree | 72de6e1e87d4f6a6cc528b659c158e12aa6c51ed /src/plugins/sensors/android/sensormanager.cpp | |
parent | fdfacac08640e168ae7b47b3ee5d855b7f374351 (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.cpp | 21 |
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 |