Add logAction() method to UserActivityLogger JavaScript API

This commit is contained in:
David Rowe 2017-04-25 13:40:57 +12:00
parent c0a258f9b3
commit c05954ee4b
2 changed files with 17 additions and 12 deletions

View file

@ -13,28 +13,28 @@
#include "UserActivityLogger.h" #include "UserActivityLogger.h"
void UserActivityLoggerScriptingInterface::enabledEdit() { void UserActivityLoggerScriptingInterface::enabledEdit() {
logAction("enabled_edit"); doLogAction("enabled_edit");
} }
void UserActivityLoggerScriptingInterface::openedTablet(bool visibleToOthers) { void UserActivityLoggerScriptingInterface::openedTablet(bool visibleToOthers) {
logAction("opened_tablet", { { "visible_to_others", visibleToOthers } }); doLogAction("opened_tablet", { { "visible_to_others", visibleToOthers } });
} }
void UserActivityLoggerScriptingInterface::closedTablet() { void UserActivityLoggerScriptingInterface::closedTablet() {
logAction("closed_tablet"); doLogAction("closed_tablet");
} }
void UserActivityLoggerScriptingInterface::openedMarketplace() { void UserActivityLoggerScriptingInterface::openedMarketplace() {
logAction("opened_marketplace"); doLogAction("opened_marketplace");
} }
void UserActivityLoggerScriptingInterface::toggledAway(bool isAway) { void UserActivityLoggerScriptingInterface::toggledAway(bool isAway) {
logAction("toggled_away", { { "is_away", isAway } }); doLogAction("toggled_away", { { "is_away", isAway } });
} }
void UserActivityLoggerScriptingInterface::tutorialProgress( QString stepName, int stepNumber, float secondsToComplete, void UserActivityLoggerScriptingInterface::tutorialProgress( QString stepName, int stepNumber, float secondsToComplete,
float tutorialElapsedTime, QString tutorialRunID, int tutorialVersion, QString controllerType) { float tutorialElapsedTime, QString tutorialRunID, int tutorialVersion, QString controllerType) {
logAction("tutorial_progress", { doLogAction("tutorial_progress", {
{ "tutorial_run_id", tutorialRunID }, { "tutorial_run_id", tutorialRunID },
{ "tutorial_version", tutorialVersion }, { "tutorial_version", tutorialVersion },
{ "step", stepName }, { "step", stepName },
@ -52,11 +52,11 @@ void UserActivityLoggerScriptingInterface::palAction(QString action, QString tar
if (target.length() > 0) { if (target.length() > 0) {
payload["target"] = target; payload["target"] = target;
} }
logAction("pal_activity", payload); doLogAction("pal_activity", payload);
} }
void UserActivityLoggerScriptingInterface::palOpened(float secondsOpened) { void UserActivityLoggerScriptingInterface::palOpened(float secondsOpened) {
logAction("pal_opened", { doLogAction("pal_opened", {
{ "seconds_opened", secondsOpened } { "seconds_opened", secondsOpened }
}); });
} }
@ -68,10 +68,14 @@ void UserActivityLoggerScriptingInterface::makeUserConnection(QString otherID, b
if (detailsString.length() > 0) { if (detailsString.length() > 0) {
payload["details"] = detailsString; payload["details"] = detailsString;
} }
logAction("makeUserConnection", payload); doLogAction("makeUserConnection", payload);
} }
void UserActivityLoggerScriptingInterface::logAction(QString action, QJsonObject details) { void UserActivityLoggerScriptingInterface::logAction(QString action, QVariantMap details) {
doLogAction(action, QJsonObject::fromVariantMap(details));
}
void UserActivityLoggerScriptingInterface::doLogAction(QString action, QJsonObject details) {
QMetaObject::invokeMethod(&UserActivityLogger::getInstance(), "logAction", QMetaObject::invokeMethod(&UserActivityLogger::getInstance(), "logAction",
Q_ARG(QString, action), Q_ARG(QString, action),
Q_ARG(QJsonObject, details)); Q_ARG(QJsonObject, details));

View file

@ -29,9 +29,10 @@ public:
float tutorialElapsedTime, QString tutorialRunID = "", int tutorialVersion = 0, QString controllerType = ""); float tutorialElapsedTime, QString tutorialRunID = "", int tutorialVersion = 0, QString controllerType = "");
Q_INVOKABLE void palAction(QString action, QString target); Q_INVOKABLE void palAction(QString action, QString target);
Q_INVOKABLE void palOpened(float secondsOpen); Q_INVOKABLE void palOpened(float secondsOpen);
Q_INVOKABLE void makeUserConnection(QString otherUser, bool success, QString details=""); Q_INVOKABLE void makeUserConnection(QString otherUser, bool success, QString details = "");
Q_INVOKABLE void logAction(QString action, QVariantMap details = QVariantMap{});
private: private:
void logAction(QString action, QJsonObject details = {}); void doLogAction(QString action, QJsonObject details = {});
}; };
#endif // hifi_UserActivityLoggerScriptingInterface_h #endif // hifi_UserActivityLoggerScriptingInterface_h