Skip to content

Commit 8ba929d

Browse files
authored
DEV2-3512 add analytics for no browser available (#633)
1 parent 7e112d4 commit 8ba929d

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Common/src/main/java/com/tabnineCommon/chat/ChatFrame.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import com.intellij.openapi.application.ApplicationManager
88
import com.intellij.openapi.diagnostic.Logger
99
import com.intellij.openapi.project.Project
1010
import com.intellij.ui.JBColor
11+
import com.tabnineCommon.binary.BinaryRequestFacade
12+
import com.tabnineCommon.binary.requests.analytics.EventRequest
1113
import com.tabnineCommon.binary.requests.config.StateRequest
1214
import com.tabnineCommon.chat.actions.TabnineActionsGroup
1315
import com.tabnineCommon.config.Config
@@ -25,7 +27,7 @@ import javax.swing.JPanel
2527
import javax.swing.SwingConstants.CENTER
2628
import javax.swing.event.HyperlinkEvent
2729

28-
class ChatFrame(private val project: Project, private val messagesRouter: ChatMessagesRouter) :
30+
class ChatFrame(private val project: Project, private val messagesRouter: ChatMessagesRouter, private val binaryRequestFacade: BinaryRequestFacade) :
2931
JPanel(true), Disposable {
3032
private var capabilitiesFetched = false
3133

@@ -98,7 +100,7 @@ class ChatFrame(private val project: Project, private val messagesRouter: ChatMe
98100
ChatBrowser(messagesRouter, project)
99101
} catch (e: Exception) {
100102
Logger.getInstance(javaClass).warn("Failed to create browser", e)
101-
displayBrowserNotEnabled()
103+
displayBrowserNotAvailable()
102104

103105
return
104106
}
@@ -120,8 +122,11 @@ class ChatFrame(private val project: Project, private val messagesRouter: ChatMe
120122
)
121123
}
122124

123-
private fun displayBrowserNotEnabled() {
125+
private fun displayBrowserNotAvailable() {
124126
val action = ActionManager.getInstance().getAction("ChooseRuntime")
127+
128+
binaryRequestFacade.executeRequest(EventRequest("chat-browser-not-available", mapOf("choose-runtime-available" to (action != null).toString())))
129+
125130
val imgsrc = javaClass.classLoader.getResource("images/choose-runtime-with-jcef.png")?.toString()
126131
val chooseRuntimePostfix = """
127132
<p>This issue may arise if your IDE is running on a Java runtime that does not support<br/>the Java Chromium Embedded Framework (JCEF).</p>
@@ -147,6 +152,7 @@ class ChatFrame(private val project: Project, private val messagesRouter: ChatMe
147152
}
148153
text.addHyperlinkListener {
149154
if (it.eventType == HyperlinkEvent.EventType.ACTIVATED) {
155+
binaryRequestFacade.executeRequest(EventRequest("chat-choose-runtime-clicked", emptyMap()))
150156
action?.actionPerformed(AnActionEvent.createFromInputEvent(null, "TabnineChatFrame", null, DataManager.getInstance().getDataContext(text)))
151157
}
152158
}

Common/src/main/java/com/tabnineCommon/chat/TabnineChatWebViewFactory.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ import com.intellij.openapi.project.Project
55
import com.intellij.openapi.util.Disposer
66
import com.intellij.openapi.wm.ToolWindow
77
import com.intellij.openapi.wm.ToolWindowFactory
8+
import com.tabnineCommon.general.DependencyContainer.instanceOfBinaryRequestFacade
89

910
class TabnineChatWebViewFactory : ToolWindowFactory, Disposable {
1011

1112
private var messagesRouter = ChatMessagesRouter()
13+
private val binaryRequestFacade = instanceOfBinaryRequestFacade()
1214

1315
override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {
14-
val chatFrame = ChatFrame(project, messagesRouter)
16+
val chatFrame = ChatFrame(project, messagesRouter, binaryRequestFacade)
1517
Disposer.register(toolWindow.disposable, chatFrame)
1618
toolWindow.component.add(chatFrame)
1719
}

0 commit comments

Comments
 (0)