From 89100a8e036a41c8fd69e7de56845f9f75ae2646 Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Wed, 29 May 2024 12:25:12 +0300 Subject: [PATCH 1/4] notification --- src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt index a2a5d2a4..fa2b077e 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt @@ -7,9 +7,11 @@ import com.intellij.openapi.fileTypes.ex.FileTypeChooser import com.intellij.openapi.fileTypes.impl.AbstractFileType import com.intellij.openapi.project.Project import com.intellij.openapi.startup.ProjectActivity +import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.registry.Registry import com.vk.admstorm.diagnostic.AdmStormLoggerFactory import com.vk.admstorm.highlight.CppTypeHighlightPatcher +import com.vk.admstorm.notifications.AdmErrorNotification import com.vk.admstorm.services.SentryService import com.vk.admstorm.settings.AdmStormSettingsState import com.vk.admstorm.ssh.SshConnectionService @@ -38,6 +40,11 @@ class AdmStormStartupActivity : ProjectActivity { return } + //TODO: remove it after release AdmStorm on Windows + if (SystemInfo.isWindows) { + AdmErrorNotification("AdmStorm is not available on Windows yet").show() + } + ChangeSshBackendStartup.changeConfigurationProcess(project) measureTime(LOG, "patch cpp highlight") { From 76e2193c0e02985af8f1ef685e9b01520f324a04 Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Thu, 30 May 2024 13:25:18 +0300 Subject: [PATCH 2/4] close button --- src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt index fa2b077e..6c52c762 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt @@ -12,6 +12,7 @@ import com.intellij.openapi.util.registry.Registry import com.vk.admstorm.diagnostic.AdmStormLoggerFactory import com.vk.admstorm.highlight.CppTypeHighlightPatcher import com.vk.admstorm.notifications.AdmErrorNotification +import com.vk.admstorm.notifications.AdmNotification import com.vk.admstorm.services.SentryService import com.vk.admstorm.settings.AdmStormSettingsState import com.vk.admstorm.ssh.SshConnectionService @@ -42,7 +43,11 @@ class AdmStormStartupActivity : ProjectActivity { //TODO: remove it after release AdmStorm on Windows if (SystemInfo.isWindows) { - AdmErrorNotification("AdmStorm is not available on Windows yet").show() + AdmErrorNotification("AdmStorm is not available on Windows yet").withActions( + AdmNotification.Action("Close this notification") { _, notification -> + notification.expire() + } + ).show() } ChangeSshBackendStartup.changeConfigurationProcess(project) From 8079b4661204fae5a2f3fdf25a0670e12dc602b6 Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Fri, 31 May 2024 16:31:19 +0300 Subject: [PATCH 3/4] added property "windowsSupportNotification" --- .../com/vk/admstorm/AdmStormStartupActivity.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt index 6c52c762..fcf7b186 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt @@ -1,5 +1,6 @@ package com.vk.admstorm +import com.intellij.ide.util.PropertiesComponent import com.intellij.openapi.application.invokeLater import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.logger @@ -43,11 +44,16 @@ class AdmStormStartupActivity : ProjectActivity { //TODO: remove it after release AdmStorm on Windows if (SystemInfo.isWindows) { - AdmErrorNotification("AdmStorm is not available on Windows yet").withActions( - AdmNotification.Action("Close this notification") { _, notification -> - notification.expire() - } - ).show() + val properties = PropertiesComponent.getInstance(project) + + if (!properties.getBoolean("windowsSupportNotification")) { + AdmErrorNotification("AdmStorm is not available on Windows yet").withActions( + AdmNotification.Action("Turn off this notification") { _, notification -> + properties.setValue("windowsSupportNotification", true) + notification.expire() + } + ).show() + } } ChangeSshBackendStartup.changeConfigurationProcess(project) From 5af5b1bea25bb23cdd5c42bc19c46b0839041a6b Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Tue, 18 Jun 2024 15:52:50 +0300 Subject: [PATCH 4/4] refactoring --- .../vk/admstorm/AdmStormStartupActivity.kt | 20 ++------------- .../startup/WindowsAvailabilityStartup.kt | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 src/main/kotlin/com/vk/admstorm/startup/WindowsAvailabilityStartup.kt diff --git a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt index fcf7b186..c74efe69 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt @@ -1,6 +1,5 @@ package com.vk.admstorm -import com.intellij.ide.util.PropertiesComponent import com.intellij.openapi.application.invokeLater import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.logger @@ -8,17 +7,15 @@ import com.intellij.openapi.fileTypes.ex.FileTypeChooser import com.intellij.openapi.fileTypes.impl.AbstractFileType import com.intellij.openapi.project.Project import com.intellij.openapi.startup.ProjectActivity -import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.registry.Registry import com.vk.admstorm.diagnostic.AdmStormLoggerFactory import com.vk.admstorm.highlight.CppTypeHighlightPatcher -import com.vk.admstorm.notifications.AdmErrorNotification -import com.vk.admstorm.notifications.AdmNotification import com.vk.admstorm.services.SentryService import com.vk.admstorm.settings.AdmStormSettingsState import com.vk.admstorm.ssh.SshConnectionService import com.vk.admstorm.startup.ChangeSshBackendStartup import com.vk.admstorm.startup.PluginsUpdateStartup +import com.vk.admstorm.startup.WindowsAvailabilityStartup import com.vk.admstorm.utils.MyUtils.measureTime import com.vk.admstorm.utils.extensions.pluginEnabled @@ -42,20 +39,7 @@ class AdmStormStartupActivity : ProjectActivity { return } - //TODO: remove it after release AdmStorm on Windows - if (SystemInfo.isWindows) { - val properties = PropertiesComponent.getInstance(project) - - if (!properties.getBoolean("windowsSupportNotification")) { - AdmErrorNotification("AdmStorm is not available on Windows yet").withActions( - AdmNotification.Action("Turn off this notification") { _, notification -> - properties.setValue("windowsSupportNotification", true) - notification.expire() - } - ).show() - } - } - + WindowsAvailabilityStartup.checkAvailability(project) ChangeSshBackendStartup.changeConfigurationProcess(project) measureTime(LOG, "patch cpp highlight") { diff --git a/src/main/kotlin/com/vk/admstorm/startup/WindowsAvailabilityStartup.kt b/src/main/kotlin/com/vk/admstorm/startup/WindowsAvailabilityStartup.kt new file mode 100644 index 00000000..227108a6 --- /dev/null +++ b/src/main/kotlin/com/vk/admstorm/startup/WindowsAvailabilityStartup.kt @@ -0,0 +1,25 @@ +package com.vk.admstorm.startup + +import com.intellij.ide.util.PropertiesComponent +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.SystemInfo +import com.vk.admstorm.notifications.AdmErrorNotification +import com.vk.admstorm.notifications.AdmNotification + +object WindowsAvailabilityStartup { + fun checkAvailability(project: Project) { + //TODO: remove it after release AdmStorm on Windows + if (SystemInfo.isWindows) { + val properties = PropertiesComponent.getInstance(project) + + if (!properties.getBoolean("windowsSupportNotification")) { + AdmErrorNotification("AdmStorm is not available on Windows yet").withActions( + AdmNotification.Action("Turn off this notification") { _, notification -> + properties.setValue("windowsSupportNotification", true) + notification.expire() + } + ).show() + } + } + } +}