void (@NotNull ProgressIndicator indicator) { List<PluginDownloader> downloaders = downloadPluginUpdates(toDownload, indicator); if (downloaders.isEmpty()) { return; } ApplicationManager.getApplication().invokeLater(() -> { List<IdeaPluginDescriptor> installedDescriptors = installPluginUpdates(downloaders); if (downloaders.size() == installedDescriptors.size()) { UpdateChecker.getNotificationGroupForPluginUpdateResults() .createNotification(getUpdateNotificationMessage(installedDescriptors), NotificationType.INFORMATION) .setDisplayId("plugins.updated.without.restart") .notify(myProject); } else if (WelcomeFrame.getInstance() == null) { PluginManagerMain.notifyPluginsUpdated(null); } else { PluginManagerConfigurable.shutdownOrRestartApp(); } }, ownerComponent != null ? ModalityState.stateForComponent(ownerComponent) : ModalityState.defaultModalityState()); }