mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-43794 Features Trainer: do not show onboarding banners on Welcome Screen if experiment is enabled
GitOrigin-RevId: 3f9eeed14825a0ca4d5c03ef7377572af7e2f77a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5f4aaad934
commit
d209d76699
@@ -12,5 +12,6 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.newUiOnboarding" />
|
||||
<orderEntry type="module" module-name="intellij.featuresTrainer" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core.ui" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.newUsersOnboarding" />
|
||||
</component>
|
||||
</module>
|
||||
+5
@@ -1,9 +1,14 @@
|
||||
<idea-plugin package="com.intellij.featuresTrainer.onboarding">
|
||||
<dependencies>
|
||||
<module name="intellij.platform.ide.newUiOnboarding"/>
|
||||
<module name="intellij.platform.ide.newUsersOnboarding"/>
|
||||
</dependencies>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij.ide.newUiOnboarding">
|
||||
<step key="learnToolWindow" implementationClass="com.intellij.featuresTrainer.onboarding.LearnToolWindowStep"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="training">
|
||||
<ift.newUsersOnboardingExperimentAccessor implementation="com.intellij.featuresTrainer.onboarding.NewUsersOnboardingExperimentAccessorImpl"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package com.intellij.featuresTrainer.onboarding
|
||||
|
||||
import com.intellij.platform.ide.newUsersOnboarding.NewUsersOnboardingExperiment
|
||||
import training.learn.NewUsersOnboardingExperimentAccessor
|
||||
|
||||
internal class NewUsersOnboardingExperimentAccessorImpl : NewUsersOnboardingExperimentAccessor {
|
||||
override fun isExperimentEnabled(): Boolean {
|
||||
return NewUsersOnboardingExperiment.getInstance().isEnabled()
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,8 @@
|
||||
<extensionPoint name="ift.learning.commonCourse" beanClass="com.intellij.util.KeyedLazyInstanceEP" dynamic="true">
|
||||
<with attribute="implementationClass" implements="training.learn.course.LearningCourse"/>
|
||||
</extensionPoint>
|
||||
|
||||
<extensionPoint name="ift.newUsersOnboardingExperimentAccessor" interface="training.learn.NewUsersOnboardingExperimentAccessor" dynamic="true"/>
|
||||
</extensionPoints>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package training.learn
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
/**
|
||||
* Temporary extension point to access the New Users Onboarding experiment state in the Features Trainer logic.
|
||||
* Can't access [com.intellij.platform.ide.newUsersOnboarding.NewUsersOnboardingExperiment] directly
|
||||
* because IFT can't strictly depend on New Users Onboarding.
|
||||
* So, if there is no New Users Onboarding, then there are no implementations of this extension point,
|
||||
* and we consider that experiment is disabled.
|
||||
*
|
||||
* It should be removed once the experiment is finished and default is determined.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
interface NewUsersOnboardingExperimentAccessor {
|
||||
fun isExperimentEnabled(): Boolean
|
||||
|
||||
companion object {
|
||||
internal val EP_NAME: ExtensionPointName<NewUsersOnboardingExperimentAccessor> = ExtensionPointName("training.ift.newUsersOnboardingExperimentAccessor")
|
||||
|
||||
fun isExperimentEnabled(): Boolean = EP_NAME.findFirstSafe { it.isExperimentEnabled() } != null
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -19,6 +19,7 @@ import training.dsl.dropMnemonic
|
||||
import training.lang.LangManager
|
||||
import training.learn.CourseManager
|
||||
import training.learn.LearnBundle
|
||||
import training.learn.NewUsersOnboardingExperimentAccessor
|
||||
import training.learn.OpenLessonActivities
|
||||
import training.learn.lesson.LessonState
|
||||
import training.learn.lesson.LessonStateManager
|
||||
@@ -46,7 +47,8 @@ open class OnboardingLessonPromoter(@NonNls protected val lessonId: String,
|
||||
!notificationScheduled &&
|
||||
!PropertiesComponent.getInstance().getBoolean(PROMO_HIDDEN, false) &&
|
||||
RecentProjectsManagerBase.getInstanceEx().getRecentPaths().size < 5 &&
|
||||
LessonStateManager.getStateFromBase(lessonId) == LessonState.NOT_PASSED
|
||||
LessonStateManager.getStateFromBase(lessonId) == LessonState.NOT_PASSED &&
|
||||
!NewUsersOnboardingExperimentAccessor.isExperimentEnabled()
|
||||
}
|
||||
|
||||
override val headerLabel: String
|
||||
|
||||
Reference in New Issue
Block a user