From 8ca83f9d19e2f1cd8601846b6100af1a8aa22918 Mon Sep 17 00:00:00 2001 From: Timur Aliberdov Date: Tue, 4 Nov 2025 11:43:17 +0100 Subject: [PATCH] IJPL-187755: start trial automatically if a trial is available after importing configs from another product In this case we consider the user new GitOrigin-RevId: 9af22c07c0ddc7330bc8d8852e4cb20ca9f0fd72 --- .../ide/startup/importSettings/jb/JbImportServiceImpl.kt | 3 ++- .../ide/startup/importSettings/jb/NameMappings.kt | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/JbImportServiceImpl.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/JbImportServiceImpl.kt index 40b29d1fe078..8daf2955340c 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/JbImportServiceImpl.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/JbImportServiceImpl.kt @@ -289,10 +289,11 @@ class JbImportServiceImpl(private val coroutineScope: CoroutineScope) : JbServic } private fun toJbProductInfo(confDir: Path): JbProductInfo? { - val ideName: String = IDEData.IDE_MAP.keys.filter { confDir.name.startsWith(it) }.maxByOrNull { it.length } ?: run { + val ideData = IDEData.getForConfigDir(confDir) ?: run { logger.info("$confDir is not prefixed with with any known IDE name. Skipping it") return null } + val ideName: String = ideData.folderName val ideVersion = confDir.name.substring(ideName.length) if (ideVersion.isEmpty()) { logger.info("$confDir doesn't contain any version info. Skipping it") diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/NameMappings.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/NameMappings.kt index 1d6afc159533..585c24fa7214 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/NameMappings.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/jb/NameMappings.kt @@ -5,7 +5,9 @@ import com.intellij.ide.startup.importSettings.StartupImportIcons.IdeIcons.* import com.intellij.ide.startup.importSettings.data.IconProductSize import com.intellij.ide.startup.importSettings.jb.IDEData.Companion.IDE_MAP import com.intellij.util.PlatformUtils +import java.nio.file.Path import javax.swing.Icon +import kotlin.io.path.name object NameMappings { fun getIcon(ideName: String, iconSize: IconProductSize): Icon? = when (iconSize) { @@ -78,5 +80,12 @@ enum class IDEData( PlatformUtils.isWebStorm() -> WEBSTORM else -> null } + + fun getForConfigDir(configDir: Path): IDEData? { + return IDEData.IDE_MAP + .filter { configDir.name.startsWith(it.key) } + .maxByOrNull { it.key.length } + ?.value + } } }