Wizard: add logging for hyperlink handler

This commit is contained in:
Ilya Kirillov
2020-04-08 14:52:07 +03:00
parent be6cd4de4a
commit e395844567
3 changed files with 15 additions and 2 deletions
@@ -15,6 +15,7 @@ import com.intellij.openapi.progress.Task
import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
import com.intellij.openapi.project.ProjectManager
import com.intellij.openapi.roots.ui.configuration.ModulesProvider
import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService
import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.tools.projectWizard.wizard
import com.intellij.openapi.application.JBProtocolCommand
import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService
import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate
class OpenNewProjectWizardProtocolCommand : JBProtocolCommand(COMMAND_NAME) {
@@ -19,6 +20,7 @@ class OpenNewProjectWizardProtocolCommand : JBProtocolCommand(COMMAND_NAME) {
val template = parameters[NEW_PROJECT_TARGET_TEMPLATE_PARAMETER]
?.let(ProjectTemplate.Companion::byId)
WizardStatsService.logWizardOpenByHyperlink(template?.id)
NewWizardOpener.open(template)
}
@@ -38,18 +38,28 @@ data class UiEditorUsageStats(
}
private enum class WizardStatsEvent(@NonNls val text: String) {
PROJECT_OPEN_BY_HYPERLINK("Wizard opened by hyperlink"),
PROJECT_CREATED("Project Created"),
WIZARD_STATE_CHANGE("New Wizard enabled or disable")
}
object WizardStatsService {
fun logWizardOpenByHyperlink(templateId: String?) {
val data = mapOf("templateId" to (templateId ?: "None"))
log(WizardStatsEvent.PROJECT_OPEN_BY_HYPERLINK, data)
}
fun logDataOnProjectGenerated(projectCreationStats: ProjectCreationStats, uiEditorUsageStats: UiEditorUsageStats) {
val data = projectCreationStats.toMap() + uiEditorUsageStats.toMap()
KotlinFUSLogger.log(FUSEventGroups.NewWizard, WizardStatsEvent.PROJECT_CREATED.text, data)
log(WizardStatsEvent.PROJECT_CREATED, data)
}
fun logWizardStatusChanged(isEnabled: Boolean) {
val data = mapOf("enabled" to isEnabled.toString())
KotlinFUSLogger.log(FUSEventGroups.NewWizard, WizardStatsEvent.WIZARD_STATE_CHANGE.text, data)
log(WizardStatsEvent.WIZARD_STATE_CHANGE, data)
}
private fun log(event: WizardStatsEvent, data: Map<String, String>) {
KotlinFUSLogger.log(FUSEventGroups.NewWizard, event.text, data)
}
}