diff --git a/src/network-web/oauth2service.cpp b/src/network-web/oauth2service.cpp index 696c8da03..200c27be1 100755 --- a/src/network-web/oauth2service.cpp +++ b/src/network-web/oauth2service.cpp @@ -26,6 +26,7 @@ #include "definitions/definitions.h" #include "miscellaneous/application.h" +#include "network-web/networkfactory.h" #include "network-web/webfactory.h" #include "services/inoreader/definitions.h" @@ -186,7 +187,10 @@ void OAuth2Service::tokenRequestFinished(QNetworkReply* network_reply) { qDebug() << "Token response:" << json_document.toJson(); - if (root_obj.keys().contains("error")) { + if (network_reply->error() != QNetworkReply::NetworkError::NoError) { + emit tokensRetrieveError(QString(), NetworkFactory::networkErrorText(network_reply->error())); + } + else if (root_obj.keys().contains("error")) { QString error = root_obj.value("error").toString(); QString error_description = root_obj.value("error_description").toString(); diff --git a/src/services/gmail/gmailserviceroot.cpp b/src/services/gmail/gmailserviceroot.cpp index 2c732e07d..9c99050ab 100755 --- a/src/services/gmail/gmailserviceroot.cpp +++ b/src/services/gmail/gmailserviceroot.cpp @@ -164,11 +164,11 @@ void GmailServiceRoot::start(bool freshly_activated) { loadFromDatabase(); loadCacheFromFile(accountId()); - m_network->oauth()->login(); - if (childCount() <= 1) { syncIn(); } + + m_network->oauth()->login(); } void GmailServiceRoot::stop() { diff --git a/src/services/gmail/network/gmailnetworkfactory.cpp b/src/services/gmail/network/gmailnetworkfactory.cpp index 2d2276541..4b2655f33 100755 --- a/src/services/gmail/network/gmailnetworkfactory.cpp +++ b/src/services/gmail/network/gmailnetworkfactory.cpp @@ -269,6 +269,8 @@ void GmailNetworkFactory::onTokensError(const QString& error, const QString& err QSystemTrayIcon::Critical, nullptr, false, [this]() { + m_oauth2->setAccessToken(QString()); + m_oauth2->setRefreshToken(QString()); m_oauth2->login(); }); } diff --git a/src/services/inoreader/inoreaderserviceroot.cpp b/src/services/inoreader/inoreaderserviceroot.cpp index 35f34cc5c..764b572d4 100755 --- a/src/services/inoreader/inoreaderserviceroot.cpp +++ b/src/services/inoreader/inoreaderserviceroot.cpp @@ -122,11 +122,12 @@ void InoreaderServiceRoot::start(bool freshly_activated) { loadFromDatabase(); loadCacheFromFile(accountId()); - m_network->oauth()->login(); - if (childCount() <= 1) { syncIn(); } + else { + m_network->oauth()->login(); + } } void InoreaderServiceRoot::stop() { diff --git a/src/services/inoreader/network/inoreadernetworkfactory.cpp b/src/services/inoreader/network/inoreadernetworkfactory.cpp index ab8172e11..f2740200a 100755 --- a/src/services/inoreader/network/inoreadernetworkfactory.cpp +++ b/src/services/inoreader/network/inoreadernetworkfactory.cpp @@ -283,6 +283,8 @@ void InoreaderNetworkFactory::onTokensError(const QString& error, const QString& QSystemTrayIcon::Critical, nullptr, false, [this]() { + m_oauth2->setAccessToken(QString()); + m_oauth2->setRefreshToken(QString()); m_oauth2->login(); }); }