11package org.digma.intellij.plugin.analytics
22
3+ import com.intellij.collaboration.async.disposingScope
34import com.intellij.openapi.Disposable
45import com.intellij.openapi.application.ApplicationManager
56import com.intellij.openapi.components.Service
67import com.intellij.openapi.components.service
78import com.intellij.openapi.diagnostic.Logger
89import com.intellij.openapi.project.Project
10+ import kotlinx.coroutines.launch
911import org.digma.intellij.plugin.common.Backgroundable
1012import org.digma.intellij.plugin.common.ExceptionUtils
1113import org.digma.intellij.plugin.common.findActiveProject
@@ -51,6 +53,12 @@ class BackendInfoHolder : Disposable {
5153 updateInBackground()
5254 }
5355 })
56+
57+ ApplicationManager .getApplication().messageBus.connect(this )
58+ .subscribe(ApiClientChangedEvent .API_CLIENT_CHANGED_TOPIC , ApiClientChangedEvent {
59+ Log .log(logger::debug, " got apiClientChanged" )
60+ updateInBackground()
61+ })
5462 }
5563
5664
@@ -60,13 +68,15 @@ class BackendInfoHolder : Disposable {
6068
6169 // updateInBackground is also called every time the analytics client is replaced
6270 fun updateInBackground () {
63- Backgroundable .ensurePooledThreadWithoutReadAccess {
71+ @Suppress(" UnstableApiUsage" )
72+ disposingScope().launch {
6473 findActiveProject()?.let {
6574 aboutRef.set(AnalyticsService .getInstance(it).about)
6675 }
6776 }
6877 }
6978
79+
7080 fun isCentralized (): Boolean {
7181 return aboutRef.get()?.let {
7282 it.isCentralize ? : false
0 commit comments