feat: disable telemetry calls if disabled

This commit is contained in:
Andrew Bastin
2021-07-07 16:40:31 -04:00
parent 20d38e247b
commit 99b1699ade

View File

@@ -1,6 +1,11 @@
import firebase from "firebase" import firebase from "firebase"
import { authEvents$ } from "./auth" import { authEvents$ } from "./auth"
import { HoppAccentColor, HoppBgColor, settings$ } from "~/newstore/settings" import {
HoppAccentColor,
HoppBgColor,
settings$,
settingsStore,
} from "~/newstore/settings"
let analytics: firebase.analytics.Analytics let analytics: firebase.analytics.Analytics
@@ -33,18 +38,25 @@ export function initAnalytics() {
function initLoginListeners() { function initLoginListeners() {
authEvents$.subscribe((ev) => { authEvents$.subscribe((ev) => {
if (ev.event === "login") { if (ev.event === "login") {
analytics.setUserId(ev.user.uid) if (settingsStore.value.TELEMETRY_ENABLED) {
analytics.setUserId(ev.user.uid)
analytics.logEvent("login", { analytics.logEvent("login", {
method: ev.user.providerData[0]?.providerId, // Assume the first provider is the login provider method: ev.user.providerData[0]?.providerId, // Assume the first provider is the login provider
}) })
}
} else if (ev.event === "logout") { } else if (ev.event === "logout") {
analytics.logEvent("logout") if (settingsStore.value.TELEMETRY_ENABLED) {
analytics.logEvent("logout")
}
} }
}) })
} }
function initSettingsListeners() { function initSettingsListeners() {
// Keep track of the telemetry status
let telemetryStatus = settingsStore.value.TELEMETRY_ENABLED
settings$.subscribe((settings) => { settings$.subscribe((settings) => {
const conf: SettingsCustomDimensions = { const conf: SettingsCustomDimensions = {
usesProxy: settings.PROXY_ENABLED, usesProxy: settings.PROXY_ENABLED,
@@ -58,10 +70,24 @@ function initSettingsListeners() {
usesTelemetry: settings.TELEMETRY_ENABLED, usesTelemetry: settings.TELEMETRY_ENABLED,
} }
analytics.setUserProperties(conf) // User toggled telemetry mode to off or to on
if (
(telemetryStatus && !settings.TELEMETRY_ENABLED) ||
settings.TELEMETRY_ENABLED
) {
analytics.setUserProperties(conf)
}
telemetryStatus = settings.TELEMETRY_ENABLED
analytics.setAnalyticsCollectionEnabled(telemetryStatus)
}) })
analytics.setAnalyticsCollectionEnabled(telemetryStatus)
} }
export function logHoppRequestRunToAnalytics(ev: HoppRequestEvent) { export function logHoppRequestRunToAnalytics(ev: HoppRequestEvent) {
analytics.logEvent("hopp-request", ev) if (settingsStore.value.TELEMETRY_ENABLED) {
analytics.logEvent("hopp-request", ev)
}
} }