Skip to content

Commit e80ccdd

Browse files
authored
CodeWhisperer: Getting Started UX should only show when user is connected (#3894)
1. Before it would show even if it was expired 2. Now it won't show if connection is expired. 3. It will also show as soon as the user has reconnected (for the first time)
1 parent 3039c41 commit e80ccdd

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

jetbrains-core/resources/META-INF/plugin.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ with what features/services are supported.
127127
topic="com.intellij.openapi.wm.ex.ToolWindowManagerListener"/>
128128
<listener class="software.aws.toolkits.jetbrains.services.codewhisperer.startup.CodeWhispererProjectStartupSettingsListener"
129129
topic="software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener"/>
130+
<listener class="software.aws.toolkits.jetbrains.services.codewhisperer.startup.CodeWhispererProjectStartupSettingsListener"
131+
topic="software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenProviderListener"/>
130132
</projectListeners>
131133

132134
<applicationListeners>

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/startup/CodeWhispererProjectStartupActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import software.aws.toolkits.jetbrains.core.explorer.refreshDevToolTree
1212
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType
1313
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
1414
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
15+
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererExpired
1516
import software.aws.toolkits.jetbrains.services.codewhisperer.importadder.CodeWhispererImportAdderListener
1617
import software.aws.toolkits.jetbrains.services.codewhisperer.learn.LearnCodeWhispererEditorProvider
1718
import software.aws.toolkits.jetbrains.services.codewhisperer.popup.CodeWhispererPopupManager.Companion.CODEWHISPERER_USER_ACTION_PERFORMED
@@ -51,7 +52,7 @@ class CodeWhispererProjectStartupActivity : StartupActivity.DumbAware {
5152
// show notification to accountless users
5253
showAccountlessNotificationIfNeeded(project)
5354

54-
if (!CodeWhispererExplorerActionManager.getInstance().hasShownNewOnboardingPage()) {
55+
if (!CodeWhispererExplorerActionManager.getInstance().hasShownNewOnboardingPage() && !isCodeWhispererExpired(project)) {
5556
showOnboardingPage(project)
5657
}
5758
runOnce = true

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/startup/CodeWhispererProjectStartupSettingsListener.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,22 @@ import com.intellij.openapi.wm.ex.ToolWindowManagerListener
1212
import com.intellij.openapi.wm.impl.status.widget.StatusBarWidgetsManager
1313
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
1414
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
15+
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenProviderListener
1516
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager
1617
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererActivationChangedListener
18+
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
1719
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
20+
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererExpired
21+
import software.aws.toolkits.jetbrains.services.codewhisperer.learn.LearnCodeWhispererEditorProvider
1822
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererSettings
1923
import software.aws.toolkits.jetbrains.services.codewhisperer.status.CodeWhispererStatusBarWidgetFactory
2024
import software.aws.toolkits.jetbrains.services.codewhisperer.toolwindow.CodeWhispererCodeReferenceManager
2125

2226
class CodeWhispererProjectStartupSettingsListener(private val project: Project) :
2327
CodeWhispererActivationChangedListener,
2428
ToolWindowManagerListener,
25-
ToolkitConnectionManagerListener {
29+
ToolkitConnectionManagerListener,
30+
BearerTokenProviderListener {
2631
override fun activationChanged(value: Boolean) {
2732
project.service<StatusBarWidgetsManager>().updateWidget(CodeWhispererStatusBarWidgetFactory::class.java)
2833
CodeWhispererCodeReferenceManager.getInstance(project).toolWindow?.isAvailable = value
@@ -53,4 +58,11 @@ class CodeWhispererProjectStartupSettingsListener(private val project: Project)
5358
CodeWhispererCodeScanManager.getInstance(project).removeCodeScanUI()
5459
}
5560
}
61+
62+
override fun onChange(providerId: String) {
63+
if (CodeWhispererExplorerActionManager.getInstance().hasShownNewOnboardingPage() || isCodeWhispererExpired(project)) {
64+
return
65+
}
66+
LearnCodeWhispererEditorProvider.openEditor(project)
67+
}
5668
}

0 commit comments

Comments
 (0)