(IDEA-332521, IJ-CR-118534) Settings Transfer: single property to check for the new flow availability

GitOrigin-RevId: 45f5278a1119ad6e367d0f751fdce177c69b7a2d
This commit is contained in:
Ivan Migalev
2023-11-02 20:22:30 +00:00
committed by intellij-monorepo-bot
parent 51590f438b
commit 6a62e6820c
4 changed files with 10 additions and 9 deletions
@@ -37,7 +37,7 @@ import com.intellij.openapi.util.text.NaturalComparator;
import com.intellij.openapi.util.text.StringUtilRt;
import com.intellij.openapi.util.text.Strings;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.ide.bootstrap.IdeStartupExperiment;
import com.intellij.platform.ide.bootstrap.IdeStartupWizardKt;
import com.intellij.platform.ide.bootstrap.StartupErrorReporter;
import com.intellij.ui.AppUIUtilKt;
import com.intellij.util.PlatformUtils;
@@ -150,7 +150,7 @@ public final class ConfigImportHelper {
log.error("Couldn't backup current config or delete current config directory", e);
}
}
else if (Boolean.getBoolean("intellij.startup.wizard") && IdeStartupExperiment.INSTANCE.shouldEnableNewStartupFlow()) {
else if (IdeStartupWizardKt.isIdeStartupWizardEnabled()) {
if (!guessedOldConfigDirs.isEmpty() && !shouldAskForConfig()) {
Pair<Path, FileTime> bestConfigGuess = guessedOldConfigDirs.getFirstItem();
if (!isConfigOld(bestConfigGuess.second)) {
@@ -23,6 +23,9 @@ import kotlin.time.Duration.Companion.seconds
private val log = logger<IdeStartupWizard>()
val isIdeStartupWizardEnabled: Boolean
get() = java.lang.Boolean.getBoolean("intellij.startup.wizard") && IdeStartupExperiment.isExperimentEnabled()
internal suspend fun runStartupWizard(isInitialStart: Job, app: Application) {
log.info("Entering startup wizard workflow.")
@@ -97,7 +100,7 @@ object IdeStartupWizardCollector : CounterUsagesCollector() {
)
fun logExperimentState() {
if (ConfigImportHelper.isFirstSession()) {
val isEnabled = IdeStartupExperiment.shouldEnableNewStartupFlow()
val isEnabled = IdeStartupExperiment.isExperimentEnabled()
log.info("IDE startup isEnabled = $isEnabled, experimentGroupKind = ${IdeStartupExperiment.experimentGroupKind}, experimentGroup = ${IdeStartupExperiment.experimentGroup}")
experimentState.log(
IdeStartupExperiment.experimentGroupKind,
@@ -150,7 +153,7 @@ object IdeStartupExperiment {
getGroupKind(experimentGroup)
}
fun shouldEnableNewStartupFlow(): Boolean {
fun isExperimentEnabled(): Boolean {
return when (experimentGroupKind) {
GroupKind.Experimental -> true
GroupKind.Control -> false
@@ -228,7 +228,7 @@ fun CoroutineScope.startApplication(args: List<String>,
}.getOrLogException(log)
}
if (IdeStartupExperiment.shouldEnableNewStartupFlow()) {
if (isIdeStartupWizardEnabled) {
log.info("Will enter initial app wizard flow.")
val result = CompletableDeferred<Boolean>()
isInitialStart = result
@@ -8,6 +8,7 @@ import com.intellij.openapi.application.ApplicationNamesInfo
import com.intellij.openapi.application.EDT
import com.intellij.openapi.diagnostic.logger
import com.intellij.platform.ide.bootstrap.IdeStartupWizard
import com.intellij.platform.ide.bootstrap.isIdeStartupWizardEnabled
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
@@ -15,11 +16,8 @@ import kotlinx.coroutines.withContext
internal class IdeStartupWizardImpl : IdeStartupWizard {
private val isEnabledViaSystemProperty
get() = System.getProperty("intellij.startup.wizard", "false").toBoolean()
override suspend fun run() {
if (!isEnabledViaSystemProperty) return
if (!isIdeStartupWizardEnabled) return
logger.info("Initial startup wizard is enabled. Will start the wizard.")
coroutineScope {