mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-175104 toolbox: report FUS usages for 'Recent Projects' feature
GitOrigin-RevId: b01daa8502acfeecf1b29729fb2dafa2b3741b9e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9d2efbcf02
commit
fa0eceb82c
@@ -8,6 +8,7 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
import com.intellij.openapi.actionSystem.AnAction
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.project.DumbAwareAction
|
||||
@@ -25,6 +26,7 @@ import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectIt
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectTreeItem
|
||||
import com.intellij.ui.UIBundle
|
||||
import com.intellij.util.concurrency.annotations.RequiresBlockingContext
|
||||
import com.intellij.util.containers.forEachLoggingErrors
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import javax.swing.Icon
|
||||
|
||||
@@ -234,6 +236,20 @@ open class RecentProjectListActionProvider {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
fun countLocalProjects(): Int {
|
||||
return RecentProjectsManagerBase.getInstanceEx().getRecentPaths().size
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
fun countProjectsFromProviders(): Int {
|
||||
var sum = 0
|
||||
EP.extensionList.forEachLoggingErrors(logger<RecentProjectListActionProvider>()) {
|
||||
sum += it.getRecentProjects().size
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
/**
|
||||
* Keep [projects] order intact, but insert [projectsFromEP] into the correct place if possible
|
||||
*/
|
||||
|
||||
+5
-4
@@ -6,7 +6,6 @@ import com.intellij.ide.IdeBundle
|
||||
import com.intellij.ide.RecentProjectListActionProvider
|
||||
import com.intellij.ide.RecentProjectsManager
|
||||
import com.intellij.ide.RecentProjectsManager.RecentProjectsChange
|
||||
import com.intellij.ide.RecentProjectsManagerBase
|
||||
import com.intellij.ide.dnd.DnDEvent
|
||||
import com.intellij.ide.dnd.DnDNativeTarget
|
||||
import com.intellij.ide.dnd.DnDSupport
|
||||
@@ -92,9 +91,11 @@ internal class ProjectsTab(private val parentDisposable: Disposable) : DefaultWe
|
||||
}
|
||||
|
||||
override fun buildComponent(): JComponent {
|
||||
val recentPaths = RecentProjectsManagerBase.getInstanceEx().getRecentPaths()
|
||||
WelcomeScreenCounterUsageCollector.reportWelcomeScreenShowed(recentPaths.size)
|
||||
val promo = WelcomeScreenComponentFactory.getSinglePromotion(recentPaths.isEmpty())
|
||||
val recentProjectsCount = RecentProjectListActionProvider.getInstance().countLocalProjects()
|
||||
val providerRecentProjectsCount = RecentProjectListActionProvider.getInstance().countProjectsFromProviders()
|
||||
WelcomeScreenCounterUsageCollector.reportWelcomeScreenShowed(recentProjectsCount, providerRecentProjectsCount)
|
||||
|
||||
val promo = WelcomeScreenComponentFactory.getSinglePromotion(recentProjectsCount == 0)
|
||||
|
||||
return panel {
|
||||
customizeSpacingConfiguration(EmptySpacingConfiguration()) {
|
||||
|
||||
+5
-3
@@ -6,14 +6,16 @@ import com.intellij.internal.statistic.eventLog.events.EventFields
|
||||
import com.intellij.internal.statistic.service.fus.collectors.CounterUsagesCollector
|
||||
|
||||
internal object WelcomeScreenCounterUsageCollector : CounterUsagesCollector() {
|
||||
private val GROUP = EventLogGroup("welcome.screen", 2)
|
||||
private val GROUP = EventLogGroup("welcome.screen", 3)
|
||||
|
||||
private val WELCOME_SCREEN_SHOWN = GROUP.registerEvent(
|
||||
"projects.tab.created",
|
||||
EventFields.BoundedInt("recent_paths_count", intArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 50))
|
||||
EventFields.BoundedInt("recent_paths_count", intArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 50)),
|
||||
EventFields.BoundedInt("provider_recent_projects_count", intArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 50))
|
||||
)
|
||||
|
||||
fun reportWelcomeScreenShowed(recentPathsCount: Int) = WELCOME_SCREEN_SHOWN.log(recentPathsCount)
|
||||
fun reportWelcomeScreenShowed(recentPathsCount: Int, providerRecentProjectsCount: Int) =
|
||||
WELCOME_SCREEN_SHOWN.log(recentPathsCount, providerRecentProjectsCount)
|
||||
|
||||
override fun getGroup(): EventLogGroup = GROUP
|
||||
}
|
||||
Reference in New Issue
Block a user