Skip to content

Commit 5f43277

Browse files
authored
Adding update/restart action to notifications (#5136)
1 parent 2fdb1d8 commit 5f43277

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/CustomizeNotificationsUi.kt

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,16 @@ import com.intellij.icons.AllIcons
77
import com.intellij.ide.BrowserUtil
88
import com.intellij.openapi.actionSystem.AnAction
99
import 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
1014
import com.intellij.openapi.project.Project
1115
import com.intellij.openapi.ui.Messages
1216
import com.intellij.ui.EditorNotificationPanel
17+
import software.aws.toolkits.jetbrains.AwsPlugin
1318
import software.aws.toolkits.jetbrains.AwsToolkit
19+
import software.aws.toolkits.jetbrains.core.plugin.PluginUpdateManager
1420
import software.aws.toolkits.resources.AwsCoreBundle
1521

1622
fun 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

101122
data class NotificationActionList(

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/plugin/PluginUpdateManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class PluginUpdateManager : Disposable {
200200
// TODO: Optimize this to only search the result for AWS plugins
201201
fun getUpdateInfo(): Collection<PluginDownloader> = UpdateChecker.getPluginUpdates() ?: emptyList()
202202

203-
internal fun updatePlugin(pluginDescriptor: IdeaPluginDescriptor, progressIndicator: ProgressIndicator): Boolean {
203+
fun updatePlugin(pluginDescriptor: IdeaPluginDescriptor, progressIndicator: ProgressIndicator): Boolean {
204204
val pluginName = pluginDescriptor.name
205205

206206
// wasUpdatedWithRestart means that, it was an update and it needs to restart to apply

0 commit comments

Comments
 (0)