diff options
author | BogDan Vatra <bogdan@kdab.com> | 2016-02-15 11:18:48 +0200 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2016-02-16 10:13:05 +0000 |
commit | 1324983f5299e44e60bba733229b9872de5d8a74 (patch) | |
tree | c2b7309bef28c45ec412ba8f0669c58c96750eca | |
parent | 541a2f88dfd11e6ccc213eca5746c8e6ba3b992d (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.cpp | 6 | ||||
-rw-r--r-- | src/plugins/gamepads/android/src/qandroidgamepadbackend.cpp | 2 |
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); |