mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform] bringing ImportOldConfigsUsagesCollector stuff together (IJPL-198038 preparation)
GitOrigin-RevId: 3f095513b1e13cefb88c2739ec8094158f415b9f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
462422eb89
commit
691497979c
@@ -79,7 +79,7 @@ import java.util.stream.Collectors;
|
||||
import static com.intellij.ide.CommandLineProcessorKt.isIdeStartupWizardEnabled;
|
||||
import static com.intellij.ide.SpecialConfigFiles.*;
|
||||
import static com.intellij.ide.plugins.BundledPluginsState.BUNDLED_PLUGINS_FILENAME;
|
||||
import static com.intellij.openapi.application.ImportOldConfigsState.InitialImportScenario.*;
|
||||
import static com.intellij.openapi.application.ImportOldConfigsUsagesCollector.InitialImportScenario.*;
|
||||
import static com.intellij.openapi.application.migrations.Localization242Kt.enableL10nIfPluginInstalled;
|
||||
import static com.intellij.openapi.application.migrations.PluginMigrationKt.MIGRATION_INSTALLED_PLUGINS_TXT;
|
||||
import static com.intellij.platform.ide.bootstrap.SplashManagerKt.hideSplash;
|
||||
@@ -175,7 +175,7 @@ public final class ConfigImportHelper {
|
||||
var vmOptionFileChanged = false;
|
||||
var vmOptionsLines = (List<String>)null;
|
||||
var currentlyDisabledPlugins = (List<String>)null;
|
||||
var importScenarioStatistics = (ImportOldConfigsState.InitialImportScenario)null;
|
||||
var importScenarioStatistics = (ImportOldConfigsUsagesCollector.InitialImportScenario)null;
|
||||
|
||||
try {
|
||||
var oldConfigDirAndOldIdePath = (Pair<@NotNull Path, @Nullable Path>)null;
|
||||
@@ -305,7 +305,8 @@ public final class ConfigImportHelper {
|
||||
settings.importFinished(newConfigDir, otherProductPrefixes);
|
||||
}
|
||||
|
||||
ImportOldConfigsState.Companion.getInstance().reportImportScenario(importScenarioStatistics);
|
||||
ImportOldConfigsUsagesCollector.INSTANCE.reportImportScenario(importScenarioStatistics);
|
||||
|
||||
if (importScenarioStatistics == IMPORT_SETTINGS_ACTION && vmOptionsLines != null) {
|
||||
var vmOptionsFile = newConfigDir.resolve(VMOptions.getFileName());
|
||||
try {
|
||||
|
||||
+1
-1
@@ -189,7 +189,7 @@ final class ImportOldConfigsPanel extends JDialog {
|
||||
}
|
||||
|
||||
@Nullable Pair<Path, Path> getSelectedFile() {
|
||||
ImportOldConfigsState.Companion.getInstance().saveImportOldConfigType(myRbImportAuto, myRbImport, myRbDoNotImport, myResult != null);
|
||||
ImportOldConfigsUsagesCollector.INSTANCE.saveImportOldConfigType(myRbImportAuto, myRbImport, myRbDoNotImport, myResult != null);
|
||||
|
||||
if (myRbImportAuto.isSelected()) {
|
||||
return new Pair<>(myGuessedOldConfigDirs.get(Math.max(myComboBoxOldPaths.getSelectedIndex(), 0)), null);
|
||||
|
||||
+37
-79
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.openapi.application
|
||||
|
||||
import com.intellij.ide.ApplicationActivity
|
||||
@@ -9,96 +9,54 @@ import com.intellij.internal.statistic.service.fus.collectors.CounterUsagesColle
|
||||
import javax.swing.JRadioButton
|
||||
|
||||
internal object ImportOldConfigsUsagesCollector : CounterUsagesCollector() {
|
||||
private val EVENT_GROUP = EventLogGroup("import.old.config", 4)
|
||||
private val IMPORT_DIALOG_SHOWN_EVENT = EVENT_GROUP.registerEvent("import.dialog.shown",
|
||||
Enum("selected", ImportOldConfigType::class.java),
|
||||
Boolean("config_folder_exists"))
|
||||
private val INITIAL_IMPORT_SCENARIO = EVENT_GROUP.registerEvent("import.initially",
|
||||
Enum("initial_import_scenario", ImportOldConfigsState.InitialImportScenario::class.java))
|
||||
|
||||
override fun getGroup(): EventLogGroup = EVENT_GROUP
|
||||
|
||||
internal class Trigger : ApplicationActivity {
|
||||
override suspend fun execute() {
|
||||
val state = ImportOldConfigsState.getInstance()
|
||||
val initialImportScenario = state.initialImportScenario
|
||||
if (initialImportScenario != null) {
|
||||
INITIAL_IMPORT_SCENARIO.log(initialImportScenario)
|
||||
}
|
||||
if (state.wasOldConfigPanelOpened()) {
|
||||
IMPORT_DIALOG_SHOWN_EVENT.log(state.type, state.doesSourceConfigFolderExist())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum class ImportOldConfigType {
|
||||
FROM_PREVIOUS,
|
||||
FROM_CUSTOM,
|
||||
DO_NOT_IMPORT,
|
||||
OTHER,
|
||||
NOT_INITIALIZED
|
||||
}
|
||||
}
|
||||
|
||||
internal class ImportOldConfigsState {
|
||||
@Volatile
|
||||
var initialImportScenario: InitialImportScenario? = null
|
||||
private set
|
||||
|
||||
@Volatile
|
||||
private var oldConfigPanelWasOpened = false
|
||||
|
||||
@Volatile
|
||||
private var sourceConfigFolderExists = false
|
||||
|
||||
@Volatile
|
||||
var type: ImportOldConfigsUsagesCollector.ImportOldConfigType = ImportOldConfigsUsagesCollector.ImportOldConfigType.NOT_INITIALIZED
|
||||
private set
|
||||
|
||||
companion object {
|
||||
private val _instance = ImportOldConfigsState()
|
||||
fun getInstance(): ImportOldConfigsState = _instance
|
||||
|
||||
private fun getOldImportType(previous: JRadioButton,
|
||||
custom: JRadioButton,
|
||||
doNotImport: JRadioButton): ImportOldConfigsUsagesCollector.ImportOldConfigType {
|
||||
if (previous.isSelected) {
|
||||
return ImportOldConfigsUsagesCollector.ImportOldConfigType.FROM_PREVIOUS
|
||||
}
|
||||
if (custom.isSelected) {
|
||||
return ImportOldConfigsUsagesCollector.ImportOldConfigType.FROM_CUSTOM
|
||||
}
|
||||
return if (doNotImport.isSelected) ImportOldConfigsUsagesCollector.ImportOldConfigType.DO_NOT_IMPORT else ImportOldConfigsUsagesCollector.ImportOldConfigType.OTHER
|
||||
}
|
||||
private enum class ImportOldConfigType {
|
||||
FROM_PREVIOUS, FROM_CUSTOM, DO_NOT_IMPORT, OTHER, NOT_INITIALIZED
|
||||
}
|
||||
|
||||
enum class InitialImportScenario {
|
||||
CLEAN_CONFIGS,
|
||||
IMPORTED_FROM_PREVIOUS_VERSION,
|
||||
IMPORTED_FROM_OTHER_PRODUCT,
|
||||
IMPORTED_FROM_CLOUD,
|
||||
CONFIG_DIRECTORY_NOT_FOUND,
|
||||
SHOW_DIALOG_NO_CONFIGS_FOUND,
|
||||
SHOW_DIALOG_CONFIGS_ARE_TOO_OLD,
|
||||
SHOW_DIALOG_REQUESTED_BY_PROPERTY,
|
||||
IMPORT_SETTINGS_ACTION,
|
||||
CLEAN_CONFIGS, IMPORTED_FROM_PREVIOUS_VERSION, IMPORTED_FROM_OTHER_PRODUCT, @Suppress("unused") IMPORTED_FROM_CLOUD, CONFIG_DIRECTORY_NOT_FOUND,
|
||||
SHOW_DIALOG_NO_CONFIGS_FOUND, SHOW_DIALOG_CONFIGS_ARE_TOO_OLD, SHOW_DIALOG_REQUESTED_BY_PROPERTY, IMPORT_SETTINGS_ACTION,
|
||||
RESTORE_DEFAULT_ACTION
|
||||
}
|
||||
|
||||
private val GROUP = EventLogGroup("import.old.config", 4)
|
||||
|
||||
private val IMPORT_DIALOG_SHOWN_EVENT =
|
||||
GROUP.registerEvent("import.dialog.shown", Enum("selected", ImportOldConfigType::class.java), Boolean("config_folder_exists"))
|
||||
|
||||
private val INITIAL_IMPORT_SCENARIO =
|
||||
GROUP.registerEvent("import.initially", Enum("initial_import_scenario", InitialImportScenario::class.java))
|
||||
|
||||
@Volatile private var initialImportScenario = null as InitialImportScenario?
|
||||
@Volatile private var oldConfigPanelWasOpened = false
|
||||
@Volatile private var sourceConfigFolderExists = false
|
||||
@Volatile private var importType = ImportOldConfigType.NOT_INITIALIZED
|
||||
|
||||
override fun getGroup(): EventLogGroup = GROUP
|
||||
|
||||
fun reportImportScenario(strategy: InitialImportScenario) {
|
||||
initialImportScenario = strategy
|
||||
}
|
||||
|
||||
fun saveImportOldConfigType(previous: JRadioButton,
|
||||
custom: JRadioButton,
|
||||
doNotImport: JRadioButton,
|
||||
configFolderExists: Boolean) {
|
||||
fun saveImportOldConfigType(previous: JRadioButton, custom: JRadioButton, doNotImport: JRadioButton, configFolderExists: Boolean) {
|
||||
oldConfigPanelWasOpened = true
|
||||
sourceConfigFolderExists = configFolderExists
|
||||
type = getOldImportType(previous, custom, doNotImport)
|
||||
importType = when {
|
||||
previous.isSelected -> ImportOldConfigType.FROM_PREVIOUS
|
||||
custom.isSelected -> ImportOldConfigType.FROM_CUSTOM
|
||||
doNotImport.isSelected -> ImportOldConfigType.DO_NOT_IMPORT
|
||||
else -> ImportOldConfigType.OTHER
|
||||
}
|
||||
}
|
||||
|
||||
fun wasOldConfigPanelOpened(): Boolean = oldConfigPanelWasOpened
|
||||
|
||||
fun doesSourceConfigFolderExist(): Boolean = sourceConfigFolderExists
|
||||
internal class Trigger : ApplicationActivity {
|
||||
override suspend fun execute() {
|
||||
initialImportScenario?.let {
|
||||
INITIAL_IMPORT_SCENARIO.log(it)
|
||||
}
|
||||
if (oldConfigPanelWasOpened) {
|
||||
IMPORT_DIALOG_SHOWN_EVENT.log(importType, sourceConfigFolderExists)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user