12 #ifndef hifi_UserActivityLogger_h
13 #define hifi_UserActivityLogger_h
15 #include "AccountManager.h"
19 #include <QJsonObject>
20 #include <QNetworkReply>
21 #include <QElapsedTimer>
23 #include <SettingHandle.h>
24 #include "AddressManager.h"
26 const QString USER_ACTIVITY_URL =
"/api/v1/user_activities";
28 class UserActivityLogger :
public QObject {
32 static UserActivityLogger& getInstance();
35 bool isEnabled() {
return !_disabled.get(); }
36 bool isDisabledSettingSet()
const {
return _disabled.isSet(); }
39 void disable(
bool disable);
40 void logAction(QString action, QJsonObject details = QJsonObject(), JSONCallbackParameters params = JSONCallbackParameters());
42 void launch(QString applicationVersion,
bool previousSessionCrashed,
int previousSessionRuntime);
44 void insufficientGLVersion(
const QJsonObject& glData);
46 void changedDisplayName(QString displayName);
47 void changedModel(QString typeOfModel, QString modelURL);
48 void changedDomain(QString domainURL);
49 void connectedDevice(QString typeOfDevice, QString deviceName);
50 void loadedScript(QString scriptName);
51 void wentTo(AddressManager::LookupTrigger trigger, QString destinationType, QString destinationName);
61 void crashReportingEnabledChanged();
64 void requestError(QNetworkReply* errorReply);