diff --git a/src/gui/application.cpp b/src/gui/application.cpp index 9a7cd6a225..f153224b21 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -34,6 +34,7 @@ #include "sharedialog.h" #include "accountmanager.h" #include "creds/abstractcredentials.h" +#include "pushnotifications.h" #if defined(BUILD_UPDATER) #include "updater/ocupdater.h" @@ -459,9 +460,10 @@ void Application::slotCheckConnection() // Don't check if we're manually signed out or // when the error is permanent. - if (state != AccountState::SignedOut - && state != AccountState::ConfigurationError - && state != AccountState::AskingCredentials) { + const auto pushNotifications = accountState->account()->pushNotifications(); + const auto pushNotificationsAvailable = (pushNotifications && pushNotifications->isReady()); + if (state != AccountState::SignedOut && state != AccountState::ConfigurationError + && state != AccountState::AskingCredentials && !pushNotificationsAvailable) { accountState->checkConnectivity(); } }