diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt index 78e36f84839..64434f325f6 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt @@ -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 diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OpenNewProjectWizardProtocolCommand.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OpenNewProjectWizardProtocolCommand.kt index 2bf6b42a145..365c28ffd64 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OpenNewProjectWizardProtocolCommand.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OpenNewProjectWizardProtocolCommand.kt @@ -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) } diff --git a/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt b/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt index 4344e0cd1d8..a1739be591e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt +++ b/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt @@ -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) { + KotlinFUSLogger.log(FUSEventGroups.NewWizard, event.text, data) } } \ No newline at end of file