summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformintegration.cpp
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2021-02-02 12:23:23 +0200
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2021-02-03 11:02:24 +0200
commit4493b90224f575e5570afeb1ec181be5c4e74b09 (patch)
tree3d42bafbd296947119ddb8d6cae9d71102a1a37b /src/plugins/platforms/android/qandroidplatformintegration.cpp
parentb1d750d59b66b75db0a3919144188004fd3b1983 (diff)
Android: fix compiler warnings for Android input
QPointingDevice requires using the constructor to set its settings in Qt 6. Replace + with | operator and return QKeyCombination instead of int. Change-Id: Id3da469cc13b34ec7b55afa751dbc04601880df6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformintegration.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp
index 1468343831..5f90a05648 100644
--- a/src/plugins/platforms/android/qandroidplatformintegration.cpp
+++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp
@@ -212,25 +212,35 @@ QAndroidPlatformIntegration::QAndroidPlatformIntegration(const QStringList &para
if (touchScreen == QJniObject::getStaticField<jint>("android/content/res/Configuration", "TOUCHSCREEN_FINGER")
|| touchScreen == QJniObject::getStaticField<jint>("android/content/res/Configuration", "TOUCHSCREEN_STYLUS"))
{
- m_touchDevice = new QPointingDevice;
- m_touchDevice->setType(QInputDevice::DeviceType::TouchScreen);
- m_touchDevice->setCapabilities(QPointingDevice::Capability::Position
- | QPointingDevice::Capability::Area
- | QPointingDevice::Capability::Pressure
- | QPointingDevice::Capability::NormalizedPosition);
-
QJniObject pm = javaActivity.callObjectMethod("getPackageManager", "()Landroid/content/pm/PackageManager;");
Q_ASSERT(pm.isValid());
+ int maxTouchPoints = 1;
if (pm.callMethod<jboolean>("hasSystemFeature","(Ljava/lang/String;)Z",
- QJniObject::getStaticObjectField("android/content/pm/PackageManager", "FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND", "Ljava/lang/String;").object())) {
- m_touchDevice->setMaximumTouchPoints(10);
+ QJniObject::getStaticObjectField("android/content/pm/PackageManager",
+ "FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND",
+ "Ljava/lang/String;").object())) {
+ maxTouchPoints = 10;
} else if (pm.callMethod<jboolean>("hasSystemFeature","(Ljava/lang/String;)Z",
- QJniObject::getStaticObjectField("android/content/pm/PackageManager", "FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT", "Ljava/lang/String;").object())) {
- m_touchDevice->setMaximumTouchPoints(4);
+ QJniObject::getStaticObjectField("android/content/pm/PackageManager",
+ "FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT",
+ "Ljava/lang/String;").object())) {
+ maxTouchPoints = 4;
} else if (pm.callMethod<jboolean>("hasSystemFeature","(Ljava/lang/String;)Z",
- QJniObject::getStaticObjectField("android/content/pm/PackageManager", "FEATURE_TOUCHSCREEN_MULTITOUCH", "Ljava/lang/String;").object())) {
- m_touchDevice->setMaximumTouchPoints(2);
+ QJniObject::getStaticObjectField("android/content/pm/PackageManager",
+ "FEATURE_TOUCHSCREEN_MULTITOUCH",
+ "Ljava/lang/String;").object())) {
+ maxTouchPoints = 2;
}
+
+ m_touchDevice = new QPointingDevice("Android touchscreen", 1,
+ QInputDevice::DeviceType::TouchScreen,
+ QPointingDevice::PointerType::Finger,
+ QPointingDevice::Capability::Position
+ | QPointingDevice::Capability::Area
+ | QPointingDevice::Capability::Pressure
+ | QPointingDevice::Capability::NormalizedPosition,
+ maxTouchPoints,
+ 0);
QWindowSystemInterface::registerInputDevice(m_touchDevice);
}