@@ -7,10 +7,16 @@ import com.intellij.icons.AllIcons
77import com.intellij.ide.BrowserUtil
88import com.intellij.openapi.actionSystem.AnAction
99import com.intellij.openapi.actionSystem.AnActionEvent
10+ import com.intellij.openapi.application.runInEdt
11+ import com.intellij.openapi.progress.ProgressIndicator
12+ import com.intellij.openapi.progress.ProgressManager
13+ import com.intellij.openapi.progress.Task
1014import com.intellij.openapi.project.Project
1115import com.intellij.openapi.ui.Messages
1216import com.intellij.ui.EditorNotificationPanel
17+ import software.aws.toolkits.jetbrains.AwsPlugin
1318import software.aws.toolkits.jetbrains.AwsToolkit
19+ import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager
1420import software.aws.toolkits.resources.AwsCoreBundle
1521
1622fun checkSeverity (notificationSeverity : String ): NotificationSeverity = when (notificationSeverity) {
@@ -37,7 +43,7 @@ object NotificationManager {
3743 if (action.type == " UpdateExtension" ) {
3844 add(
3945 NotificationActionList (AwsCoreBundle .message(" notification.update" )) {
40- // TODO: Add update logic
46+ updatePlugins()
4147 }
4248 )
4349 }
@@ -96,6 +102,21 @@ object NotificationManager {
96102
97103 return panel
98104 }
105+ private fun updatePlugins () {
106+ val pluginUpdateManager = PluginUpdateManager ()
107+ runInEdt {
108+ ProgressManager .getInstance().run (object : Task .Backgroundable (
109+ null ,
110+ AwsCoreBundle .message(" aws.settings.auto_update.progress.message" )
111+ ) {
112+ override fun run (indicator : ProgressIndicator ) {
113+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .CORE )
114+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .TOOLKIT )
115+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .Q )
116+ }
117+ })
118+ }
119+ }
99120}
100121
101122data class NotificationActionList (
0 commit comments