From 745209af86cb6190fe87c04a302fa1071fe7de07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Kondratek?= Date: Thu, 28 Mar 2024 15:04:08 +0100 Subject: [PATCH] Extract NotificationGroups.kt (#1204) ## Test plan 1. nothing specific - it's just a minor refactor --- .../sourcegraph/config/CodyAuthNotificationActivity.java | 9 +++++++-- src/main/java/com/sourcegraph/find/FindPopupPanel.java | 3 ++- src/main/java/com/sourcegraph/website/CopyAction.java | 3 ++- .../sourcegraph/cody/chat/ExportChatsBackgroundable.kt | 5 +++-- .../com/sourcegraph/cody/config/ui/CheckUpdatesTask.kt | 3 ++- .../cody/initialization/TrialEndedNotification.kt | 3 ++- .../cody/initialization/TrialEndingSoonNotification.kt | 3 ++- .../com/sourcegraph/common/BrowserErrorNotification.kt | 2 +- .../kotlin/com/sourcegraph/common/ErrorNotification.kt | 6 +++++- .../kotlin/com/sourcegraph/common/NotificationGroups.kt | 9 +++++++++ .../sourcegraph/common/UpgradeToCodyProNotification.kt | 2 +- 11 files changed, 36 insertions(+), 12 deletions(-) create mode 100644 src/main/kotlin/com/sourcegraph/common/NotificationGroups.kt diff --git a/src/main/java/com/sourcegraph/config/CodyAuthNotificationActivity.java b/src/main/java/com/sourcegraph/config/CodyAuthNotificationActivity.java index b1cb251d80..12c647699a 100644 --- a/src/main/java/com/sourcegraph/config/CodyAuthNotificationActivity.java +++ b/src/main/java/com/sourcegraph/config/CodyAuthNotificationActivity.java @@ -18,6 +18,7 @@ import com.sourcegraph.cody.config.CodyAuthenticationManager; import com.sourcegraph.cody.initialization.Activity; import com.sourcegraph.cody.statusbar.CodyManageAccountsAction; +import com.sourcegraph.common.NotificationGroups; import org.jetbrains.annotations.NotNull; public class CodyAuthNotificationActivity implements Activity { @@ -45,7 +46,10 @@ private void showOpenCodySidebarNotification(@NotNull Project project) { // Display notification Notification notification = new Notification( - "cody.auth", "Open Cody sidebar to get started", "", NotificationType.WARNING); + NotificationGroups.CODY_AUTH, + "Open Cody sidebar to get started", + "", + NotificationType.WARNING); AnAction openCodySidebar = new DumbAwareAction("Open Cody") { @@ -79,7 +83,8 @@ public void actionPerformed(@NotNull AnActionEvent anActionEvent) { private void showMissingTokenNotification() { // Display notification Notification notification = - new Notification("cody.auth", "Missing access token", "", NotificationType.WARNING); + new Notification( + NotificationGroups.CODY_AUTH, "Missing access token", "", NotificationType.WARNING); notification.setIcon(Icons.CodyLogo); notification.addAction(new CodyManageAccountsAction()); diff --git a/src/main/java/com/sourcegraph/find/FindPopupPanel.java b/src/main/java/com/sourcegraph/find/FindPopupPanel.java index 77eace4157..64190d8d03 100644 --- a/src/main/java/com/sourcegraph/find/FindPopupPanel.java +++ b/src/main/java/com/sourcegraph/find/FindPopupPanel.java @@ -17,6 +17,7 @@ import com.intellij.util.ui.JBUI; import com.intellij.util.ui.components.BorderLayoutPanel; import com.sourcegraph.Icons; +import com.sourcegraph.common.NotificationGroups; import com.sourcegraph.find.browser.BrowserAndLoadingPanel; import com.sourcegraph.find.browser.JSToJavaBridgeRequestHandler; import com.sourcegraph.find.browser.JavaToJSBridge; @@ -105,7 +106,7 @@ public FindPopupPanel(@NotNull Project project, @NotNull FindService findService private void showNoBrowserErrorNotification() { Notification notification = new Notification( - "Sourcegraph errors", + NotificationGroups.SOURCEGRAPH_ERRORS, "Sourcegraph", "Your IDE doesn't support JCEF. You won't be able to use \"Find with Sourcegraph\". If you believe this is an error, please raise this at support@sourcegraph.com, specifying your OS and IDE version.", NotificationType.ERROR); diff --git a/src/main/java/com/sourcegraph/website/CopyAction.java b/src/main/java/com/sourcegraph/website/CopyAction.java index 2e43581ec3..87d871333b 100644 --- a/src/main/java/com/sourcegraph/website/CopyAction.java +++ b/src/main/java/com/sourcegraph/website/CopyAction.java @@ -5,6 +5,7 @@ import com.intellij.notification.Notifications; import com.intellij.openapi.ide.CopyPasteManager; import com.intellij.openapi.project.Project; +import com.sourcegraph.common.NotificationGroups; import java.awt.datatransfer.StringSelection; import org.jetbrains.annotations.NotNull; @@ -20,7 +21,7 @@ protected void handleFileUri(@NotNull Project project, @NotNull String uri) { // Display notification Notification notification = new Notification( - "Sourcegraph: URL sharing", + NotificationGroups.SOURCEGRAPH_URL_SHARING, "Sourcegraph", "File URL copied to clipboard: " + urlWithoutUtm, NotificationType.INFORMATION); diff --git a/src/main/kotlin/com/sourcegraph/cody/chat/ExportChatsBackgroundable.kt b/src/main/kotlin/com/sourcegraph/cody/chat/ExportChatsBackgroundable.kt index de1d5f7701..a0a45772d7 100644 --- a/src/main/kotlin/com/sourcegraph/cody/chat/ExportChatsBackgroundable.kt +++ b/src/main/kotlin/com/sourcegraph/cody/chat/ExportChatsBackgroundable.kt @@ -13,6 +13,7 @@ import com.sourcegraph.cody.history.HistoryService import com.sourcegraph.cody.initialization.EndOfTrialNotificationScheduler import com.sourcegraph.cody.vscode.CancellationToken import com.sourcegraph.common.CodyBundle +import com.sourcegraph.common.NotificationGroups import java.util.concurrent.TimeUnit class ExportChatsBackgroundable( @@ -58,7 +59,7 @@ class ExportChatsBackgroundable( val notification = Notification( - "Sourcegraph Cody", + NotificationGroups.TOOLWINDOW, CodyBundle.getString("export.failed"), "", NotificationType.WARNING) @@ -72,7 +73,7 @@ class ExportChatsBackgroundable( val notification = Notification( - "Sourcegraph Cody", + NotificationGroups.TOOLWINDOW, CodyBundle.getString("export.timed-out"), "", NotificationType.WARNING) diff --git a/src/main/kotlin/com/sourcegraph/cody/config/ui/CheckUpdatesTask.kt b/src/main/kotlin/com/sourcegraph/cody/config/ui/CheckUpdatesTask.kt index 8071064811..8845c39478 100644 --- a/src/main/kotlin/com/sourcegraph/cody/config/ui/CheckUpdatesTask.kt +++ b/src/main/kotlin/com/sourcegraph/cody/config/ui/CheckUpdatesTask.kt @@ -15,6 +15,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.updateSettings.impl.PluginDownloader import com.intellij.openapi.updateSettings.impl.UpdateChecker import com.intellij.openapi.util.BuildNumber +import com.sourcegraph.common.NotificationGroups import java.lang.reflect.InvocationTargetException class CheckUpdatesTask(project: Project) : @@ -60,7 +61,7 @@ class CheckUpdatesTask(project: Project) : fun notifyAboutTheUpdate(project: Project) { val notification = FullContent( - "Sourcegraph Cody + Code Search plugin updates", + NotificationGroups.CODY_UPDATES, "Update Available", "A new version of Sourcegraph Cody + Code Search is available. Go to plugin settings to update.", NotificationType.IDE_UPDATE) diff --git a/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndedNotification.kt b/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndedNotification.kt index aa537bc0d4..fe2f37d325 100644 --- a/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndedNotification.kt +++ b/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndedNotification.kt @@ -10,10 +10,11 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.sourcegraph.Icons import com.sourcegraph.common.BrowserOpener.openInBrowser import com.sourcegraph.common.CodyBundle +import com.sourcegraph.common.NotificationGroups class TrialEndedNotification(val disposable: Disposable) : Notification( - "Sourcegraph errors", + NotificationGroups.SOURCEGRAPH_ERRORS, CodyBundle.getString("TrialEndedNotification.ended.title"), CodyBundle.getString("TrialEndedNotification.ended.content"), NotificationType.WARNING), diff --git a/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndingSoonNotification.kt b/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndingSoonNotification.kt index d554294471..409ea06389 100644 --- a/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndingSoonNotification.kt +++ b/src/main/kotlin/com/sourcegraph/cody/initialization/TrialEndingSoonNotification.kt @@ -9,10 +9,11 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.sourcegraph.Icons import com.sourcegraph.common.BrowserOpener.openInBrowser import com.sourcegraph.common.CodyBundle +import com.sourcegraph.common.NotificationGroups class TrialEndingSoonNotification : Notification( - "Sourcegraph errors", + NotificationGroups.SOURCEGRAPH_ERRORS, CodyBundle.getString("TrialEndingSoonNotification.ending-soon.title"), CodyBundle.getString("TrialEndingSoonNotification.ending-soon.content"), NotificationType.WARNING), diff --git a/src/main/kotlin/com/sourcegraph/common/BrowserErrorNotification.kt b/src/main/kotlin/com/sourcegraph/common/BrowserErrorNotification.kt index 62cd892b60..8923b1ebf8 100644 --- a/src/main/kotlin/com/sourcegraph/common/BrowserErrorNotification.kt +++ b/src/main/kotlin/com/sourcegraph/common/BrowserErrorNotification.kt @@ -16,7 +16,7 @@ object BrowserErrorNotification { fun show(project: Project?, uri: URI) { val notification = Notification( - "Sourcegraph errors", + NotificationGroups.SOURCEGRAPH_ERRORS, "Sourcegraph", "Opening an external browser is not supported. You can still copy the URL to your clipboard and open it manually.", NotificationType.WARNING) diff --git a/src/main/kotlin/com/sourcegraph/common/ErrorNotification.kt b/src/main/kotlin/com/sourcegraph/common/ErrorNotification.kt index 05a97a2c3e..0c43515c8a 100644 --- a/src/main/kotlin/com/sourcegraph/common/ErrorNotification.kt +++ b/src/main/kotlin/com/sourcegraph/common/ErrorNotification.kt @@ -25,7 +25,11 @@ object ErrorNotification { fun create(errorMessage: String): Notification { val notification = - Notification("Sourcegraph errors", "Sourcegraph", errorMessage, NotificationType.WARNING) + Notification( + NotificationGroups.SOURCEGRAPH_ERRORS, + "Sourcegraph", + errorMessage, + NotificationType.WARNING) notification.setIcon(Icons.CodyLogo) return notification } diff --git a/src/main/kotlin/com/sourcegraph/common/NotificationGroups.kt b/src/main/kotlin/com/sourcegraph/common/NotificationGroups.kt new file mode 100644 index 0000000000..b5d41f2563 --- /dev/null +++ b/src/main/kotlin/com/sourcegraph/common/NotificationGroups.kt @@ -0,0 +1,9 @@ +package com.sourcegraph.common + +object NotificationGroups { + const val CODY_AUTH = "cody.auth" + const val SOURCEGRAPH_ERRORS = "Sourcegraph errors" + const val SOURCEGRAPH_URL_SHARING = "Sourcegraph: URL sharing" + const val CODY_UPDATES = "Sourcegraph Cody + Code Search plugin updates" + const val TOOLWINDOW = "Sourcegraph Cody" +} diff --git a/src/main/kotlin/com/sourcegraph/common/UpgradeToCodyProNotification.kt b/src/main/kotlin/com/sourcegraph/common/UpgradeToCodyProNotification.kt index 566cec2d8c..3d03a979ad 100644 --- a/src/main/kotlin/com/sourcegraph/common/UpgradeToCodyProNotification.kt +++ b/src/main/kotlin/com/sourcegraph/common/UpgradeToCodyProNotification.kt @@ -14,7 +14,7 @@ import java.util.concurrent.atomic.AtomicReference class UpgradeToCodyProNotification private constructor(title: String, content: String, shouldShowUpgradeOption: Boolean) : - Notification("Sourcegraph errors", title, content, NotificationType.WARNING), + Notification(NotificationGroups.SOURCEGRAPH_ERRORS, title, content, NotificationType.WARNING), NotificationFullContent { init { icon = Icons.CodyLogo