aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2016-02-15 11:18:48 +0200
committerBogDan Vatra <bogdan@kdab.com>2016-02-16 10:13:05 +0000
commit1324983f5299e44e60bba733229b9872de5d8a74 (patch)
treec2b7309bef28c45ec412ba8f0669c58c96750eca
parent541a2f88dfd11e6ccc213eca5746c8e6ba3b992d (diff)
Android: productId doesn't seem to be a persistent ID.
getDescriptor is guarantee to be unique no matter what. Change-Id: I8db9745066547a3a210b0a305a6ee28ea0292825 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
-rw-r--r--src/gamepad/qgamepadbackend.cpp6
-rw-r--r--src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/gamepad/qgamepadbackend.cpp b/src/gamepad/qgamepadbackend.cpp
index bd87176..2b74634 100644
--- a/src/gamepad/qgamepadbackend.cpp
+++ b/src/gamepad/qgamepadbackend.cpp
@@ -39,6 +39,8 @@
QT_BEGIN_NAMESPACE
+static const QLatin1String GAMEPAD_GROUP("___gamepad_saved_states_v2");
+
QGamepadBackend::QGamepadBackend(QObject *parent) :
QObject(parent)
{
@@ -80,7 +82,7 @@ void QGamepadBackend::saveSettings(int productId, const QVariant &value)
s.reset(new QSettings());
else
s.reset(new QSettings(m_settingsFilePath));
- s->beginGroup(QString::fromLatin1("___gamepad_saved_states_v1"));
+ s->beginGroup(GAMEPAD_GROUP);
QString key = QString::fromLatin1("id_%1").arg(productId);
if (value.isNull())
s->remove(key);
@@ -95,7 +97,7 @@ QVariant QGamepadBackend::readSettings(int productId)
s.reset(new QSettings());
else
s.reset(new QSettings(m_settingsFilePath));
- s->beginGroup(QString::fromLatin1("___gamepad_saved_states_v1"));
+ s->beginGroup(GAMEPAD_GROUP);
return s->value(QString::fromLatin1("id_%1").arg(productId));
}
diff --git a/src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp b/src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp
index 3e2154c..ab09cdd 100644
--- a/src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp
+++ b/src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp
@@ -267,7 +267,7 @@ void QAndroidGamepadBackend::addDevice(int deviceId)
if (acceptable) {
m_devices.insert(deviceId, *g_defaultMapping());
- int productId = inputDevice.callMethod<jint>("getProductId", "()I");
+ int productId = qHash(inputDevice.callObjectMethod("getDescriptor", "()Ljava/lang/String;").toString());
m_devices[deviceId].productId = productId;
if (productId) {
QVariant settings = readSettings(productId);