Skip to content

Commit 27ddeba

Browse files
committed
created PluginsHealthCard
1 parent f10bcc4 commit 27ddeba

File tree

2 files changed

+50
-40
lines changed

2 files changed

+50
-40
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
11
package com.vk.admstorm
22

3-
import com.intellij.ide.BrowserUtil
4-
import com.intellij.ide.plugins.InstalledPluginsState
53
import com.intellij.openapi.application.invokeLater
64
import com.intellij.openapi.diagnostic.Logger
75
import com.intellij.openapi.diagnostic.logger
8-
import com.intellij.openapi.extensions.PluginId
96
import com.intellij.openapi.fileTypes.ex.FileTypeChooser
107
import com.intellij.openapi.fileTypes.impl.AbstractFileType
11-
import com.intellij.openapi.options.ShowSettingsUtil
128
import com.intellij.openapi.project.Project
139
import com.intellij.openapi.startup.ProjectActivity
1410
import com.intellij.openapi.util.registry.Registry
1511
import com.vk.admstorm.diagnostic.AdmStormLoggerFactory
1612
import com.vk.admstorm.highlight.CppTypeHighlightPatcher
17-
import com.vk.admstorm.notifications.AdmNotification
1813
import com.vk.admstorm.services.SentryService
1914
import com.vk.admstorm.settings.AdmStormSettingsState
2015
import com.vk.admstorm.ssh.SshConnectionService
2116
import com.vk.admstorm.startup.ChangeSshBackendStartup
2217
import com.vk.admstorm.utils.MyUtils.measureTime
23-
import com.vk.admstorm.utils.ServerNameProvider
2418
import com.vk.admstorm.utils.extensions.pluginEnabled
2519

2620
class AdmStormStartupActivity : ProjectActivity {
@@ -44,7 +38,7 @@ class AdmStormStartupActivity : ProjectActivity {
4438
}
4539

4640
ChangeSshBackendStartup.changeConfigurationProcess(project)
47-
checkUpdates(project)
41+
PluginsHealthCard(project).checkUpdates()
4842

4943
measureTime(LOG, "patch cpp highlight") {
5044
val cppType = FileTypeChooser.getKnownFileTypeOrAssociate(".c") as AbstractFileType
@@ -69,37 +63,4 @@ class AdmStormStartupActivity : ProjectActivity {
6963

7064
Logger.setFactory(AdmStormLoggerFactory(sentry, defaultLoggerFactory))
7165
}
72-
73-
private fun hasNewVersion(pluginId : PluginId): Boolean {
74-
return InstalledPluginsState.getInstance().hasNewerVersion(pluginId)
75-
}
76-
77-
private fun checkUpdates(project: Project) {
78-
val hasAdmNewerVersion = hasNewVersion(AdmService.ADM_PLUGIN_ID)
79-
val hasKphpStormNewVersion = hasNewVersion(AdmService.KPHPSTORM_PLUGIN_ID)
80-
val hasModuliteNewVersion = hasNewVersion(AdmService.MODULITE_PLUGIN_ID)
81-
82-
if (!(hasAdmNewerVersion || hasModuliteNewVersion || hasKphpStormNewVersion)) {
83-
return
84-
}
85-
86-
var updateNotification = AdmNotification("New version of the plugin is available")
87-
.withActions(
88-
AdmNotification.Action("Update") { _, _ ->
89-
invokeLater {
90-
ShowSettingsUtil.getInstance().showSettingsDialog(project, "Plugins")
91-
}
92-
}
93-
)
94-
95-
if (hasAdmNewerVersion) {
96-
updateNotification = updateNotification.withActions(
97-
AdmNotification.Action("What's new") { _, _ ->
98-
val url = "https://vkcom.github.io/admstorm/whatsnew.html?server_name=${ServerNameProvider.name()}"
99-
BrowserUtil.browse(url)
100-
}
101-
)
102-
}
103-
updateNotification.show(project)
104-
}
10566
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.vk.admstorm
2+
3+
import com.intellij.ide.BrowserUtil
4+
import com.intellij.ide.plugins.InstalledPluginsState
5+
import com.intellij.openapi.application.invokeLater
6+
import com.intellij.openapi.extensions.PluginId
7+
import com.intellij.openapi.options.ShowSettingsUtil
8+
import com.intellij.openapi.project.Project
9+
import com.vk.admstorm.notifications.AdmNotification
10+
import com.vk.admstorm.utils.ServerNameProvider
11+
12+
data class PluginsHealthCard(val project: Project) {
13+
private val admId = AdmService.ADM_PLUGIN_ID
14+
private val kphpId = AdmService.KPHPSTORM_PLUGIN_ID
15+
private val moduliteId = AdmService.MODULITE_PLUGIN_ID
16+
17+
private fun hasNewVersion(pluginId : PluginId): Boolean {
18+
return InstalledPluginsState.getInstance().hasNewerVersion(pluginId)
19+
}
20+
21+
fun checkUpdates() {
22+
val hasAdmNewerVersion = hasNewVersion(admId)
23+
val hasKphpStormNewVersion = hasNewVersion(kphpId)
24+
val hasModuliteNewVersion = hasNewVersion(moduliteId)
25+
26+
if (!(hasAdmNewerVersion || hasModuliteNewVersion || hasKphpStormNewVersion)) {
27+
return
28+
}
29+
30+
var updateNotification = AdmNotification("New version of the plugin is available")
31+
.withActions(
32+
AdmNotification.Action("Update") { _, _ ->
33+
invokeLater {
34+
ShowSettingsUtil.getInstance().showSettingsDialog(project, "Plugins")
35+
}
36+
}
37+
)
38+
39+
if (hasAdmNewerVersion) {
40+
updateNotification = updateNotification.withActions(
41+
AdmNotification.Action("What's new") { _, _ ->
42+
val url = "https://vkcom.github.io/admstorm/whatsnew.html?server_name=${ServerNameProvider.name()}"
43+
BrowserUtil.browse(url)
44+
}
45+
)
46+
}
47+
updateNotification.show(project)
48+
}
49+
}

0 commit comments

Comments
 (0)