From e9826250cb9131b5bdf7c8a972fe41cd50c6a40b Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 1 Jul 2014 12:57:39 -0700 Subject: [PATCH] CR --- interface/src/Application.cpp | 16 +------------- .../networking/src/UserActivityLogger.cpp | 21 +++++++++++++++++-- libraries/networking/src/UserActivityLogger.h | 2 +- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index c222b363b8..0f8fbbae56 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -398,22 +398,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : } Application::~Application() { - // In order to get the end of the session, we nned to give the account manager enough time to send the packet. - QEventLoop loop; - // Here we connect the callbacks to stop the event loop - JSONCallbackParameters params; - params.jsonCallbackReceiver = &loop; - params.errorCallbackReceiver = &loop; - params.jsonCallbackMethod = "quit"; - params.errorCallbackMethod = "quit"; - // In case something goes wrong, we also setup a timer so that the delai is not greater than DELAY_TIME int DELAY_TIME = 1000; - QTimer timer; - connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit); - // Now we can log it - UserActivityLogger::getInstance().close(params); - timer.start(DELAY_TIME); - loop.exec(); + UserActivityLogger::getInstance().close(DELAY_TIME); qInstallMessageHandler(NULL); diff --git a/libraries/networking/src/UserActivityLogger.cpp b/libraries/networking/src/UserActivityLogger.cpp index 4a0b065c0a..aa18cb43ee 100644 --- a/libraries/networking/src/UserActivityLogger.cpp +++ b/libraries/networking/src/UserActivityLogger.cpp @@ -11,8 +11,10 @@ #include "UserActivityLogger.h" -#include +#include #include +#include +#include static const QString USER_ACTIVITY_URL = "/api/v1/user_activities"; @@ -76,9 +78,24 @@ void UserActivityLogger::launch(QString applicationVersion) { logAction(ACTION_NAME, actionDetails); } -void UserActivityLogger::close(JSONCallbackParameters params) { +void UserActivityLogger::close(int delayTime) { const QString ACTION_NAME = "close"; + + // In order to get the end of the session, we need to give the account manager enough time to send the packet. + QEventLoop loop; + // Here we connect the callbacks to stop the event loop + JSONCallbackParameters params; + params.jsonCallbackReceiver = &loop; + params.errorCallbackReceiver = &loop; + params.jsonCallbackMethod = "quit"; + params.errorCallbackMethod = "quit"; + // In case something goes wrong, we also setup a timer so that the delai is not greater than delayTime + QTimer timer; + connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit); + // Now we can log it logAction(ACTION_NAME, QJsonObject(), params); + timer.start(delayTime); + loop.exec(); } void UserActivityLogger::changedDisplayName(QString displayName) { diff --git a/libraries/networking/src/UserActivityLogger.h b/libraries/networking/src/UserActivityLogger.h index 1474107ff3..4823143234 100644 --- a/libraries/networking/src/UserActivityLogger.h +++ b/libraries/networking/src/UserActivityLogger.h @@ -29,7 +29,7 @@ public slots: void logAction(QString action, QJsonObject details = QJsonObject(), JSONCallbackParameters params = JSONCallbackParameters()); void launch(QString applicationVersion); - void close(JSONCallbackParameters params = JSONCallbackParameters()); + void close(int delayTime); void changedDisplayName(QString displayName); void changedModel(QString typeOfModel, QString modelURL); void changedDomain(QString domainURL);