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/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 9c89826cb9..01e80ae5e5 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -136,6 +136,8 @@ void PreferencesDialog::loadPreferences() { _skeletonURLString = myAvatar->getSkeletonModel().getURL().toString(); ui.skeletonURLEdit->setText(_skeletonURLString); + + ui.sendDataCheckBox->setChecked(!menuInstance->isOptionChecked(MenuOption::DisableActivityLogger)); ui.snapshotLocationEdit->setText(menuInstance->getSnapshotsLocation()); @@ -201,6 +203,11 @@ void PreferencesDialog::savePreferences() { myAvatar->sendIdentityPacket(); Application::getInstance()->bumpSettings(); } + + if (!Menu::getInstance()->isOptionChecked(MenuOption::DisableActivityLogger) + != ui.sendDataCheckBox->isChecked()) { + Menu::getInstance()->triggerOption(MenuOption::DisableActivityLogger); + } if (!ui.snapshotLocationEdit->text().isEmpty() && QDir(ui.snapshotLocationEdit->text()).exists()) { Menu::getInstance()->setSnapshotsLocation(ui.snapshotLocationEdit->text()); diff --git a/interface/ui/preferencesDialog.ui b/interface/ui/preferencesDialog.ui index 95678bf6f8..a1a794bc34 100644 --- a/interface/ui/preferencesDialog.ui +++ b/interface/ui/preferencesDialog.ui @@ -135,7 +135,7 @@ color: #0e7077 0 30 494 - 384 + 361 @@ -155,8 +155,8 @@ color: #0e7077 0 0 - 600 - 1091 + 494 + 1456 @@ -790,6 +790,132 @@ padding: 10px;margin-top:10px + + + + + 0 + 0 + + + + + 0 + 30 + + + + + Arial + 16 + + + + color: #0e7077 + + + Privacy + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + 0 + + + snapshotLocationEdit + + + + + + + 0 + + + 10 + + + 0 + + + 10 + + + + + + Arial + + + + color: rgb(51, 51, 51) + + + Send data + + + 15 + + + maxVoxelsSpin + + + + + + + + Arial + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 32 + 0 + + + + + 0 + 0 + + + + + + + + 32 + 32 + + + + true + + + + + @@ -2073,8 +2199,8 @@ padding: 10px;margin-top:10px close() - 495 - 749 + 966 + 557 528 @@ -2089,8 +2215,8 @@ padding: 10px;margin-top:10px accept() - 504 - 749 + 1070 + 557 20 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