diff --git a/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/RemoteCommunicatorHolder.kt b/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/RemoteCommunicatorHolder.kt index 79ce64523dd6..0a6e50dfc4cc 100644 --- a/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/RemoteCommunicatorHolder.kt +++ b/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/RemoteCommunicatorHolder.kt @@ -78,7 +78,7 @@ object RemoteCommunicatorHolder : SettingsSyncEventListener { fun getAvailableProviders(): List { val extensionList = arrayListOf() - extensionList.addAll(SettingsSyncCommunicatorProvider.PROVIDER_EP.extensionList) + extensionList.addAll(SettingsSyncCommunicatorProvider.PROVIDER_EP.extensionList.filter { it.isAvailable() }) if (extensionList.find { it.providerCode == DEFAULT_PROVIDER_CODE } == null) { extensionList.add(DummyDefaultCommunicatorProvider) } diff --git a/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/SettingsSyncCommunicatorProvider.kt b/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/SettingsSyncCommunicatorProvider.kt index 3e7ce9d0826e..4c874e1a2065 100644 --- a/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/SettingsSyncCommunicatorProvider.kt +++ b/platform/settings-sync-core/src/com/intellij/settingsSync/core/communicator/SettingsSyncCommunicatorProvider.kt @@ -21,6 +21,11 @@ interface SettingsSyncCommunicatorProvider { */ fun createCommunicator(userId: String): SettingsSyncRemoteCommunicator? + /** + * Indicates whether provider is available. Allows to control provider availability inside the plugin + */ + fun isAvailable(): Boolean = true + companion object { @JvmField val PROVIDER_EP = ExtensionPointName.create("com.intellij.settingsSync.communicatorProvider") diff --git a/plugins/settings-sync/jba/src/com/intellij/settingsSync/jba/JbaCommunicatorProvider.kt b/plugins/settings-sync/jba/src/com/intellij/settingsSync/jba/JbaCommunicatorProvider.kt index f903a57c57cc..9dbd2a59c737 100644 --- a/plugins/settings-sync/jba/src/com/intellij/settingsSync/jba/JbaCommunicatorProvider.kt +++ b/plugins/settings-sync/jba/src/com/intellij/settingsSync/jba/JbaCommunicatorProvider.kt @@ -22,7 +22,5 @@ class JbaCommunicatorProvider : SettingsSyncCommunicatorProvider, Disposable { CloudConfigServerCommunicator(null, authServiceLazy.value) }.value - override fun dispose() { - TODO("Not yet implemented") - } + override fun dispose() {} } \ No newline at end of file