From bb47abd585e3b44f88ff574f77d42e5810d9a869 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 17 Nov 2017 11:53:00 +0100 Subject: [PATCH] fix subscribing to topic after first pairing --- libguh-core/awsconnector.cpp | 7 ++++++- libguh-core/awsconnector.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libguh-core/awsconnector.cpp b/libguh-core/awsconnector.cpp index a2e29969..833c819e 100644 --- a/libguh-core/awsconnector.cpp +++ b/libguh-core/awsconnector.cpp @@ -160,6 +160,11 @@ void AWSConnector::setupPairing() subscribe(subscriptions); // fetch previous pairings + fetchPairings(); +} + +void AWSConnector::fetchPairings() +{ QVariantMap params; params.insert("timestamp", QDateTime::currentMSecsSinceEpoch()); params.insert("id", ++m_transactionId); @@ -367,7 +372,7 @@ ResponseCode AWSConnector::onSubscriptionReceivedCallback(util::String topic_nam } else if (!userId.isEmpty()) { qCDebug(dcAWS()) << "Pairing response for id:" << userId << statusCode; emit connector->devicePaired(userId, statusCode, message); - connector->subscribe({QString("%1/eu-west-1:%2/#").arg(connector->m_clientId).arg(userId)}); + connector->staticMetaObject.invokeMethod(connector, "fetchPairings", Qt::QueuedConnection); } else { qCWarning(dcAWS()) << "Received a pairing response for a transaction we didn't start"; } diff --git a/libguh-core/awsconnector.h b/libguh-core/awsconnector.h index 966cb6ec..e535ab8c 100644 --- a/libguh-core/awsconnector.h +++ b/libguh-core/awsconnector.h @@ -59,6 +59,7 @@ private slots: void registerDevice(); void onDeviceRegistered(bool needsReconnect); void setupPairing(); + void fetchPairings(); void onPairingsRetrieved(const QVariantList &pairings); void setName(); void onDisconnected();