Skip to content

Instantly share code, notes, and snippets.

@danhalliday
Created March 21, 2022 15:11
Show Gist options
  • Save danhalliday/40214bbe2f69d43cf5bbecddecdc46af to your computer and use it in GitHub Desktop.
Save danhalliday/40214bbe2f69d43cf5bbecddecdc46af to your computer and use it in GitHub Desktop.
Sound Amplifier V1 Analytics Configuration
// MARK: - Audio
extension Audio.InputDidChange: TrackedAction {}
extension Audio.OutputDidChange: TrackedAction {}
extension Audio.RecordingDidStop: TrackedAction {}
extension Audio.RecordingDidStart: TrackedAction {}
extension AudioRoutePicker.DidAppear: TrackedAction {}
extension AudioRoutePicker.DidDisappear: TrackedAction {}
// MARK: - Home Screen
extension HomeScreen.HelpButtonWasPressed: TrackedAction {}
extension HomeScreen.SidebarButtonWasPressed: TrackedAction {}
// MARK: - Status Bar
extension StatusBar.StopButtonWasPressed: TrackedAction {}
extension StatusBar.StartButtonWasPressed: TrackedAction {}
extension StatusBar.RoutePickerButtonWasPressed: TrackedAction {
static let trackedValues: TrackedValues = [
"Audio.isRecording": .model(\Audio.isRecording),
"Audio.headphoneState": .model(\Audio.headphoneState)
]
}
// MARK: - Help
extension HelpScreen.DidAppear: TrackedAction {}
extension HelpScreen.DidDisappear: TrackedAction {}
extension HelpScreen.DismissButtonWasPressed: TrackedAction {}
extension HeadphoneSetupScreen.WiredButtonWasPressed: TrackedAction {}
extension HeadphoneSetupScreen.WirelessButtonWasPressed: TrackedAction {}
extension HeadphoneSetupScreen.SupportButtonWasPressed: TrackedAction {}
extension HeadphoneSetupScreen.SuccessMessageDidAppear: TrackedAction {}
// MARK: - Onboarding
extension OnboardingScreen.DidAppear: TrackedAction {}
extension OnboardingScreen.DidDisappear: TrackedAction {}
extension OnboardingScreen.WasDismissed: TrackedAction {}
extension OnboardingScreen.StepDidChange: TrackedAction {
static let trackedValues: TrackedValues = [
"step": .action(\Self.step)
]
}
extension OnboardingScreen.NextButtonWasPressed: TrackedAction {
static let trackedValues: TrackedValues = [
"step": .action(\Self.step)
]
}
// MARK: - Lifecycle
extension Lifecycle.AppDidLaunch: TrackedAction {
static let trackedValues: TrackedValues = [
"Usage.launchCount": .model(\Usage.launchCount)
]
}
// MARK: - Feedback
extension Feedback.CheckUserSentiment: TrackedAction {}
extension Feedback.RequestAppStoreReview: TrackedAction {}
// MARK: - Debug
extension Debug.Toggle: TrackedAction {
static let trackedValues: TrackedValues = [
"Debug.isEnabled": .model(\Debug.isEnabled)
]
}
extension DebugScreen.DidAppear: TrackedAction {}
extension DebugScreen.DidDisappear: TrackedAction {}
extension DebugScreen.WasDismissed: TrackedAction {}
// MARK: - Sidebar
extension Sidebar.DidShow: TrackedAction {}
extension Sidebar.DidHide: TrackedAction {}
extension Sidebar.HomeButtonWasPressed: TrackedAction {}
extension Sidebar.AboutButtonWasPressed: TrackedAction {}
extension Sidebar.SupportButtonWasPressed: TrackedAction {}
extension Sidebar.PrivacyButtonWasPressed: TrackedAction {}
extension Sidebar.DebugButtonWasPressed: TrackedAction {}
extension Sidebar.DismissButtonWasPressed: TrackedAction {}
// MARK: - Tooltips
extension Tooltips.Start: TrackedAction {}
// MARK: - Globals
let globalTrackedValues: TrackedValues = [
"User.id":
.model(\User.id.uuidString),
"Usage.launchCount":
.model(\Usage.launchCount),
"Usage.firstLaunchTime":
.model(\Usage.firstLaunchTime),
"Usage.recordingStartCount":
.model(\Usage.recordingStartCount),
"Usage.onboardingCompletionLaunch":
.model(\Usage.onboardingCompletionLaunch),
"Theme.colorScheme":
.model(\Theme.colorScheme.id),
"Debug.isEnabled":
.model(\Debug.isEnabled)
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment