@@ -11,8 +11,11 @@ import com.intellij.notification.NotificationAction
1111import com.intellij.openapi.actionSystem.AnAction
1212import com.intellij.openapi.actionSystem.AnActionEvent
1313import com.intellij.openapi.application.ApplicationManager
14+ import com.intellij.openapi.application.runInEdt
1415import com.intellij.openapi.options.ShowSettingsUtil
1516import com.intellij.openapi.progress.ProgressIndicator
17+ import com.intellij.openapi.progress.ProgressManager
18+ import com.intellij.openapi.progress.Task
1619import com.intellij.openapi.project.Project
1720import com.intellij.openapi.ui.Messages
1821import com.intellij.ui.EditorNotificationPanel
@@ -22,9 +25,7 @@ import software.aws.toolkits.core.utils.error
2225import software.aws.toolkits.core.utils.getLogger
2326import software.aws.toolkits.jetbrains.AwsPlugin
2427import software.aws.toolkits.jetbrains.AwsToolkit
25- import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager.Companion.ID_ACTION_AUTO_UPDATE_SETTINGS
26- import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager.Companion.LOG
27- import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager.Companion.SOURCE_AUTO_UPDATE_FINISH_NOTIFY
28+ import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager
2829import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager.Companion.updatePlugin
2930import software.aws.toolkits.jetbrains.settings.AwsSettingsSharedConfigurable
3031import software.aws.toolkits.jetbrains.utils.notifyInfo
@@ -56,7 +57,7 @@ object NotificationManager {
5657 if (action.type == " UpdateExtension" ) {
5758 add(
5859 NotificationActionList (AwsCoreBundle .message(" notification.update" )) {
59-
60+ updatePlugins()
6061 }
6162 )
6263 }
@@ -116,40 +117,20 @@ object NotificationManager {
116117 return panel
117118 }
118119
119- @RequiresBackgroundThread
120- fun updatePlugins (progressIndicator : ProgressIndicator , plugin : AwsPlugin ) {
121- val pluginInfo = AwsToolkit .PLUGINS_INFO [plugin] ? : return
122- val pluginDescriptor = pluginInfo.descriptor as ? IdeaPluginDescriptor ? : return
123- val pluginName = pluginInfo.name
124- try {
125- if (! PluginManagerCore .isPluginInstalled(pluginDescriptor.pluginId)) {
126- // LOG.debug { "$pluginName is not detected as installed, not performing auto-update" }
127- return
128- }
129-
130- if (! updatePlugin(pluginDescriptor, progressIndicator)) return
131-
132- } catch (e: Exception ) {
133- getLogger<NotificationManager >().debug(e) { " Unable to update $pluginName " }
134-
135- return
136- } catch (e: Error ) {
137- getLogger<NotificationManager >().error { " Unable to update $pluginName " }
138- return
120+ private fun updatePlugins () {
121+ val pluginUpdateManager = PluginUpdateManager ()
122+ runInEdt {
123+ ProgressManager .getInstance().run (object : Task .Backgroundable (
124+ null ,
125+ AwsCoreBundle .message(" aws.settings.auto_update.progress.message" )
126+ ) {
127+ override fun run (indicator : ProgressIndicator ) {
128+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .CORE )
129+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .TOOLKIT )
130+ pluginUpdateManager.checkForUpdates(indicator, AwsPlugin .Q )
131+ }
132+ })
139133 }
140-
141- if (plugin == AwsPlugin .CORE ) return
142- notifyInfo(
143- title = AwsCoreBundle .message(" aws.notification.auto_update.title" , pluginName),
144- content = AwsCoreBundle .message(" aws.settings.auto_update.notification.message" ),
145- project = null ,
146- notificationActions = listOf (
147- NotificationAction .createSimpleExpiring(AwsCoreBundle .message(" aws.settings.auto_update.notification.yes" )) {
148- ApplicationManager .getApplication().restart()
149- },
150- NotificationAction .createSimpleExpiring(AwsCoreBundle .message(" aws.settings.auto_update.notification.no" )) {}
151- )
152- )
153134 }
154135}
155136
0 commit comments