Merge pull request #10605 from davidkelly/dk/analyticsForBubble

Add UserActivity calls for bubble usage
This commit is contained in:
David Kelly 2017-06-02 09:48:15 -07:00 committed by GitHub
commit 70b6236890
3 changed files with 22 additions and 7 deletions

View file

@ -56,7 +56,7 @@ void UserActivityLoggerScriptingInterface::palAction(QString action, QString tar
} }
void UserActivityLoggerScriptingInterface::palOpened(float secondsOpened) { void UserActivityLoggerScriptingInterface::palOpened(float secondsOpened) {
doLogAction("pal_opened", { doLogAction("pal_opened", {
{ "seconds_opened", secondsOpened } { "seconds_opened", secondsOpened }
}); });
} }
@ -71,6 +71,14 @@ void UserActivityLoggerScriptingInterface::makeUserConnection(QString otherID, b
doLogAction("makeUserConnection", payload); doLogAction("makeUserConnection", payload);
} }
void UserActivityLoggerScriptingInterface::bubbleToggled(bool newValue) {
doLogAction(newValue ? "bubbleOn" : "bubbleOff");
}
void UserActivityLoggerScriptingInterface::bubbleActivated() {
doLogAction("bubbleActivated");
}
void UserActivityLoggerScriptingInterface::logAction(QString action, QVariantMap details) { void UserActivityLoggerScriptingInterface::logAction(QString action, QVariantMap details) {
doLogAction(action, QJsonObject::fromVariantMap(details)); doLogAction(action, QJsonObject::fromVariantMap(details));
} }

View file

@ -30,6 +30,8 @@ public:
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 bubbleToggled(bool newValue);
Q_INVOKABLE void bubbleActivated();
Q_INVOKABLE void logAction(QString action, QVariantMap details = QVariantMap{}); Q_INVOKABLE void logAction(QString action, QVariantMap details = QVariantMap{});
private: private:
void doLogAction(QString action, QJsonObject details = {}); void doLogAction(QString action, QJsonObject details = {});

View file

@ -10,7 +10,7 @@
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
/* global Script, Users, Overlays, AvatarList, Controller, Camera, getControllerWorldLocation */ /* global Script, Users, Overlays, AvatarList, Controller, Camera, getControllerWorldLocation, UserActivityLogger */
(function () { // BEGIN LOCAL_SCOPE (function () { // BEGIN LOCAL_SCOPE
var button; var button;
@ -76,6 +76,7 @@
// Called from the C++ scripting interface to show the bubble overlay // Called from the C++ scripting interface to show the bubble overlay
function enteredIgnoreRadius() { function enteredIgnoreRadius() {
createOverlays(); createOverlays();
UserActivityLogger.bubbleActivated();
} }
// Used to set the state of the bubble HUD button // Used to set the state of the bubble HUD button
@ -139,10 +140,14 @@
} }
// When the space bubble is toggled... // When the space bubble is toggled...
function onBubbleToggled() { // NOTE: the c++ calls this with just the first param -- we added a second
var bubbleActive = Users.getIgnoreRadiusEnabled(); // just for not logging the initial state of the bubble when we startup.
writeButtonProperties(bubbleActive); function onBubbleToggled(enabled, doNotLog) {
if (bubbleActive) { writeButtonProperties(enabled);
if (doNotLog !== true) {
UserActivityLogger.bubbleToggled(enabled);
}
if (enabled) {
createOverlays(); createOverlays();
} else { } else {
hideOverlays(); hideOverlays();
@ -163,7 +168,7 @@
sortOrder: 4 sortOrder: 4
}); });
onBubbleToggled(); onBubbleToggled(Users.getIgnoreRadiusEnabled(), true); // pass in true so we don't log this initial one in the UserActivity table
button.clicked.connect(Users.toggleIgnoreRadius); button.clicked.connect(Users.toggleIgnoreRadius);
Users.ignoreRadiusEnabledChanged.connect(onBubbleToggled); Users.ignoreRadiusEnabledChanged.connect(onBubbleToggled);