Skip to content

Commit fce3042

Browse files
committed
Amazon Q chat not compatible dialog added for Android Studio
1 parent 4eaa965 commit fce3042

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QOpenPanelAction.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,53 @@ package software.aws.toolkits.jetbrains.services.amazonq
66
import com.intellij.openapi.actionSystem.AnAction
77
import com.intellij.openapi.actionSystem.AnActionEvent
88
import com.intellij.openapi.actionSystem.CommonDataKeys
9+
import com.intellij.openapi.application.ApplicationInfo
10+
import com.intellij.openapi.application.ApplicationNamesInfo
11+
import com.intellij.openapi.project.Project
12+
import com.intellij.openapi.ui.DialogWrapper
13+
import com.intellij.openapi.ui.Messages
914
import com.intellij.openapi.wm.ToolWindowManager
15+
import com.intellij.ui.dsl.builder.panel
1016
import icons.AwsIcons
1117
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AMAZON_Q_WINDOW_ID
1218
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow
1319
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.runScanKey
20+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1421
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
22+
import software.aws.toolkits.resources.AmazonQBundle
1523
import software.aws.toolkits.resources.message
1624
import software.aws.toolkits.telemetry.UiTelemetry
25+
import javax.swing.JComponent
1726

1827
class QOpenPanelAction : AnAction(message("action.q.openchat.text"), null, AwsIcons.Logos.AWS_Q) {
1928
override fun actionPerformed(e: AnActionEvent) {
2029
if (isRunningOnRemoteBackend()) return
2130
val project = e.getRequiredData(CommonDataKeys.PROJECT)
31+
if (!isQWebviewsAvailable()) {
32+
QWebviewNotAvailable(project).show()
33+
return
34+
}
2235
UiTelemetry.click(project, "q_openChat")
2336
ToolWindowManager.getInstance(project).getToolWindow(AMAZON_Q_WINDOW_ID)?.activate(null, true)
2437
if (e.getData(runScanKey) == true) {
2538
AmazonQToolWindow.openScanTab(project)
2639
}
2740
}
2841
}
42+
43+
class QWebviewNotAvailable(project: Project) : DialogWrapper(project) {
44+
override fun createCenterPanel(): JComponent = panel {
45+
row {
46+
icon(Messages.getWarningIcon())
47+
label(AmazonQBundle.message("amazonqChat.incompatible.text", ApplicationNamesInfo.getInstance().fullProductName)).bold()
48+
}
49+
row {
50+
label(AmazonQBundle.message("amazonQChat.incomptible.text.fix"))
51+
}.visible(ApplicationInfo.getInstance().build.productCode == "AI")
52+
}
53+
54+
init {
55+
title = AmazonQBundle.message("amazonQChat.incompatible.title")
56+
init()
57+
}
58+
}

plugins/amazonq/shared/jetbrains-community/resources/software/aws/toolkits/resources/AmazonQBundle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
action.q.hello.description=Hello description
2+
amazonqChat.incompatible.text=JCEF, a dependency of Amazon Q chat is not supported in {0}
3+
amazonQChat.incomptible.text.fix=<html>To fix this,<ul><li>Click on Help-> Find Actions: Choose Boot runtime for the IDE</li><li>Select the latest JetBrains Runtime JBR with JCEF that matches the default runtime</li></ul></html>
4+
amazonQChat.incompatible.title=Amazon Q Chat not Supported on this Platform
25
amazonqInlineChat.hint.edit = Edit
36
amazonqInlineChat.popup.accept=Accept \u23CE
47
amazonqInlineChat.popup.cancel=Cancel \u238B

0 commit comments

Comments
 (0)