mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
[settingsSync] IJPL-165434 add dummy default provider
GitOrigin-RevId: e7fd2c1060ac1697ca158fc6ff173c2bfd84ab15
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2ef96d8dee
commit
7592919609
@@ -75,6 +75,9 @@ status.action.settings.sync.failed=Failed
|
||||
# logout.dialog.button=Log Out
|
||||
plugins.bundled=Bundled plugins
|
||||
subcategory.config.link=Configure
|
||||
#temporary message
|
||||
settings.jba.plugin.required.text=Please download JetBrains "Backup and Sync" plugin from the Plugins page
|
||||
settings.jba.plugin.required.title=Plugin download required
|
||||
|
||||
settings.category.ui.editor.font=Editor font
|
||||
settings.sync.info.message=Sync UI, Code and System settings, Keymaps, Plugins, and Tools.
|
||||
|
||||
@@ -1,11 +1,19 @@
|
||||
package com.intellij.settingsSync.core.communicator
|
||||
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.ui.Messages
|
||||
import com.intellij.settingsSync.core.SettingsSyncBundle
|
||||
import com.intellij.settingsSync.core.SettingsSyncEventListener
|
||||
import com.intellij.settingsSync.core.SettingsSyncLocalSettings
|
||||
import com.intellij.settingsSync.core.SettingsSyncRemoteCommunicator
|
||||
import com.intellij.settingsSync.core.auth.SettingsSyncAuthService
|
||||
import com.intellij.util.resettableLazy
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.awt.Component
|
||||
|
||||
@ApiStatus.Internal
|
||||
object RemoteCommunicatorHolder : SettingsSyncEventListener {
|
||||
@@ -69,10 +77,18 @@ object RemoteCommunicatorHolder : SettingsSyncEventListener {
|
||||
}
|
||||
|
||||
fun getAvailableProviders(): List<SettingsSyncCommunicatorProvider> {
|
||||
val extensionList = SettingsSyncCommunicatorProvider.PROVIDER_EP.extensionList
|
||||
val extensionList = arrayListOf<SettingsSyncCommunicatorProvider>()
|
||||
extensionList.addAll(SettingsSyncCommunicatorProvider.PROVIDER_EP.extensionList)
|
||||
if (extensionList.find { it.providerCode == DEFAULT_PROVIDER_CODE } == null) {
|
||||
extensionList.add(DummyDefaultCommunicatorProvider)
|
||||
}
|
||||
return extensionList
|
||||
}
|
||||
|
||||
fun getExternalProviders(): List<SettingsSyncCommunicatorProvider> {
|
||||
return getAvailableProviders().filter { it.providerCode != DEFAULT_PROVIDER_CODE }
|
||||
}
|
||||
|
||||
fun getDefaultProvider(): SettingsSyncCommunicatorProvider? {
|
||||
return getProvider(DEFAULT_PROVIDER_CODE)
|
||||
}
|
||||
@@ -89,4 +105,37 @@ object RemoteCommunicatorHolder : SettingsSyncEventListener {
|
||||
val providerCode = SettingsSyncLocalSettings.getInstance().providerCode ?: return null
|
||||
return getProvider(providerCode)
|
||||
}
|
||||
|
||||
private object DummyAuthService: SettingsSyncAuthService {
|
||||
override val providerCode = DEFAULT_PROVIDER_CODE
|
||||
override val providerName = "JetBrains"
|
||||
override val icon = AllIcons.Ultimate.IdeaUltimatePromo
|
||||
|
||||
override suspend fun login(parentComponent: Component?): SettingsSyncUserData? {
|
||||
return withContext(Dispatchers.EDT) {
|
||||
if (parentComponent != null) {
|
||||
Messages.showInfoMessage(parentComponent, SettingsSyncBundle.message("settings.jba.plugin.required.text"),
|
||||
SettingsSyncBundle.message("settings.jba.plugin.required.title"))
|
||||
} else {
|
||||
Messages.showInfoMessage(SettingsSyncBundle.message("settings.jba.plugin.required.text"),
|
||||
SettingsSyncBundle.message("settings.jba.plugin.required.title"))
|
||||
}
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
override fun getUserData(userId: String): SettingsSyncUserData? = null
|
||||
override fun getAvailableUserAccounts(): List<SettingsSyncUserData> = emptyList()
|
||||
}
|
||||
|
||||
private object DummyDefaultCommunicatorProvider : SettingsSyncCommunicatorProvider {
|
||||
override val providerCode: String
|
||||
get() = DEFAULT_PROVIDER_CODE
|
||||
override val authService = DummyAuthService
|
||||
|
||||
override fun createCommunicator(userId: String): SettingsSyncRemoteCommunicator? {
|
||||
return null
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ internal class SettingsSyncConfigurable(private val coroutineScope: CoroutineSco
|
||||
private val wasUsedBefore = AtomicBooleanProperty(SettingsSyncLocalSettings.getInstance().userId != null)
|
||||
private val userAccountsList = arrayListOf<UserProviderHolder>()
|
||||
private val syncPanelHolder = SettingsSyncPanelHolder()
|
||||
private val hasMultipleProviders = AtomicBooleanProperty(RemoteCommunicatorHolder.getAvailableProviders().size > 1)
|
||||
private val hasMultipleProviders = AtomicBooleanProperty(RemoteCommunicatorHolder.getExternalProviders().isNotEmpty())
|
||||
|
||||
init {
|
||||
syncEnabler.addListener(this)
|
||||
|
||||
Reference in New Issue
Block a user