diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index f18dde7cbf..1c3d0f25b8 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "Application.h" #include "AccountManager.h" @@ -433,8 +434,14 @@ Menu::Menu() : addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::ShowIKConstraints, 0, false); addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlignForearmsWithWrists, 0, true); addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlternateIK, 0, false); - + addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::DisableNackPackets, 0, false); + addCheckableActionToQMenuAndActionHash(developerMenu, + MenuOption::DisableActivityLogger, + 0, + false, + &UserActivityLogger::getInstance(), + SLOT(disable(bool))); addDisabledActionAndSeparator(developerMenu, "Testing"); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 651cf3288a..2e61bf8fd8 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -341,6 +341,7 @@ namespace MenuOption { const QString Console = "Console..."; const QString DecreaseAvatarSize = "Decrease Avatar Size"; const QString DecreaseVoxelSize = "Decrease Voxel Size"; + const QString DisableActivityLogger = "Disable Activity Logger"; const QString DisableAutoAdjustLOD = "Disable Automatically Adjusting LOD"; const QString DisableNackPackets = "Disable NACK Packets"; const QString DisableQAudioOutputOverflowCheck = "Disable QAudioOutput Overflow Check"; diff --git a/libraries/networking/src/UserActivityLogger.cpp b/libraries/networking/src/UserActivityLogger.cpp index 0217fb9106..90b9da07dc 100644 --- a/libraries/networking/src/UserActivityLogger.cpp +++ b/libraries/networking/src/UserActivityLogger.cpp @@ -9,13 +9,13 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // -#include "UserActivityLogger.h" - #include #include #include #include +#include "UserActivityLogger.h" + static const QString USER_ACTIVITY_URL = "/api/v1/user_activities"; UserActivityLogger& UserActivityLogger::getInstance() { @@ -23,10 +23,18 @@ UserActivityLogger& UserActivityLogger::getInstance() { return sharedInstance; } -UserActivityLogger::UserActivityLogger() { +UserActivityLogger::UserActivityLogger() : _disabled(false) { +} + +void UserActivityLogger::disable(bool disable) { + _disabled = disable; } void UserActivityLogger::logAction(QString action, QJsonObject details, JSONCallbackParameters params) { + if (_disabled) { + return; + } + AccountManager& accountManager = AccountManager::getInstance(); QHttpMultiPart* multipart = new QHttpMultiPart(QHttpMultiPart::FormDataType); diff --git a/libraries/networking/src/UserActivityLogger.h b/libraries/networking/src/UserActivityLogger.h index 7c48a72b73..7e8abe9fb2 100644 --- a/libraries/networking/src/UserActivityLogger.h +++ b/libraries/networking/src/UserActivityLogger.h @@ -26,6 +26,7 @@ public: static UserActivityLogger& getInstance(); public slots: + void disable(bool disable); void logAction(QString action, QJsonObject details = QJsonObject(), JSONCallbackParameters params = JSONCallbackParameters()); void launch(QString applicationVersion); @@ -43,6 +44,7 @@ private slots: private: UserActivityLogger(); + bool _disabled; }; #endif // hifi_UserActivityLogger_h \ No newline at end of file