fix logic when there are no paired devices yet

This commit is contained in:
Michael Zanetti 2017-12-05 18:31:22 +01:00
parent 3128860122
commit 9dcec7258d

View File

@ -176,11 +176,14 @@ void AWSConnector::fetchPairings()
void AWSConnector::onPairingsRetrieved(const QVariantList &pairings)
{
QStringList topics;
foreach (const QVariant &pairing, pairings) {
topics << QString("%1/%2/#").arg(m_clientId).arg(pairing.toString());
qCDebug(dcAWS) << pairings.count() << "devices paired in cloud.";
if (pairings.count() > 0) {
QStringList topics;
foreach (const QVariant &pairing, pairings) {
topics << QString("%1/%2/#").arg(m_clientId).arg(pairing.toString());
}
subscribe(topics);
}
subscribe(topics);
if (readSyncedNameCache() != m_clientName) {
setName();
@ -413,11 +416,6 @@ ResponseCode AWSConnector::onSubscriptionReceivedCallback(util::String topic_nam
qCWarning(dcAWS()) << "Received a pairing response for a transaction we didn't start";
}
} else if (topic == QString("%1/device/users/response").arg(connector->m_clientId)) {
if (jsonDoc.toVariant().toMap().value("users").toList().isEmpty()) {
qCDebug(dcAWS()) << "No devices paired yet...";
return ResponseCode::SUCCESS;
}
qCDebug(dcAWS) << jsonDoc.toVariant().toMap().value("users").toList().count() << "devices paired in cloud.";
connector->staticMetaObject.invokeMethod(connector, "onPairingsRetrieved", Qt::QueuedConnection, Q_ARG(QVariantList, jsonDoc.toVariant().toMap().value("users").toList()));
} else if (topic == QString("%1/device/name/response").arg(connector->m_clientId)) {
qCDebug(dcAWS) << "Set device name in cloud with status:" << jsonDoc.toVariant().toMap().value("status").toInt();