From 4cc274c9463a3f04fe0430c4d7a44d800684a848 Mon Sep 17 00:00:00 2001 From: Sergey Pak Date: Wed, 29 May 2024 17:27:59 +0200 Subject: [PATCH] hide settings sync from import GitOrigin-RevId: 631d2d1a7ae63e3edc78041a00b07887db1db97b --- .../chooser/productChooser/JbChooserAction.kt | 2 +- .../chooser/productChooser/OtherOptions.kt | 2 +- .../chooser/productChooser/ProductChooserPage.kt | 6 ++++-- .../chooser/productChooser/SyncStateAction.kt | 4 +++- .../startup/importSettings/data/ActionsDataProvider.kt | 2 +- .../ide/startup/importSettings/data/SettingsService.kt | 9 +++++++-- .../ide/startup/importSettings/sync/SyncServiceImpl.kt | 4 ---- 7 files changed, 17 insertions(+), 12 deletions(-) diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/JbChooserAction.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/JbChooserAction.kt index 9680c2399206..15868c75632e 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/JbChooserAction.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/JbChooserAction.kt @@ -35,7 +35,7 @@ class SyncChooserAction(controller: ImportSettingsController, syncDataProvider: override fun update(e: AnActionEvent) { e.presentation.isVisible = false - if (!service.isSyncEnabled.value) { + if (!service.isSyncEnabled || !service.hasDataToSync.value) { return } super.update(e) diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/OtherOptions.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/OtherOptions.kt index bb8a506efac7..2fab35106b6b 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/OtherOptions.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/OtherOptions.kt @@ -41,7 +41,7 @@ class OtherOptions(private val controller: ImportSettingsController, private val jb = addActionList(jbProducts, jbDataProvider, ImportSettingsBundle.message("other.options.sub.title.installed")) } - if(syncDataProvider.settingsService.isSyncEnabled.value) { + if (syncDataProvider.settingsService.isSyncEnabled && syncDataProvider.settingsService.hasDataToSync.value) { syncDataProvider.other?.let { products -> addActionList(products, syncDataProvider, ImportSettingsBundle.message("other.options.sub.title.setting.sync")).let { if (it.isNotEmpty()) { diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/ProductChooserPage.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/ProductChooserPage.kt index a471f978b90d..a93662c7e1f0 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/ProductChooserPage.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/ProductChooserPage.kt @@ -33,6 +33,7 @@ class ProductChooserPage(val controller: ImportSettingsController, override val private val lifetime = controller.lifetime.createNested().intersect(this.createLifetime()) private val syncDataProvider = SyncActionsDataProvider.createProvider(lifetime) + /* private val accountLabel = JLabel("user.name").apply { icon = AllIcons.General.User @@ -42,10 +43,11 @@ class ProductChooserPage(val controller: ImportSettingsController, override val text = it?.loginName } - settService.isSyncEnabled.advise(lifetime) { + settService.hasDataToSync.advise(lifetime) { isVisible = it } } + */ private val pane = object: JPanel(VerticalLayout(JBUI.scale(26), SwingConstants.CENTER)) { override fun getComponentGraphics(g: Graphics?): Graphics { @@ -102,7 +104,7 @@ class ProductChooserPage(val controller: ImportSettingsController, override val at.setReservePlaceAutoPopupIcon(false) at.targetComponent = pane - add(accountLabel, BorderLayout.WEST) + //add(accountLabel, BorderLayout.WEST) add(at.component, BorderLayout.EAST) border = JBUI.Borders.empty(0, 20, 10, 7) diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/SyncStateAction.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/SyncStateAction.kt index 7819be52a755..c4625b28b931 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/SyncStateAction.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/productChooser/SyncStateAction.kt @@ -19,6 +19,8 @@ class SyncStateAction : ChooseProductActionButton() { override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.EDT override fun actionPerformed(e: AnActionEvent) { + if (!settingsService.isSyncEnabled) + return when (syncService.syncState.value) { SyncService.SYNC_STATE.UNLOGGED -> { syncService.tryToLogin() @@ -29,7 +31,7 @@ class SyncStateAction : ChooseProductActionButton() { } override fun update(e: AnActionEvent) { - e.presentation.isVisible = !settingsService.isSyncEnabled.value + e.presentation.isVisible = settingsService.isSyncEnabled && !settingsService.hasDataToSync.value if(!e.presentation.isVisible) { return } diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/ActionsDataProvider.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/ActionsDataProvider.kt index f31b118d95f0..a679ca69d0f4 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/ActionsDataProvider.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/ActionsDataProvider.kt @@ -177,7 +177,7 @@ class SyncActionsDataProvider private constructor(lifetime: Lifetime) : ActionsD private fun updateSyncMap() { val service = settingsService.getSyncService() - if (!settingsService.isSyncEnabled.value) { + if (!settingsService.isSyncEnabled || !settingsService.hasDataToSync.value) { map = null return } diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/SettingsService.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/SettingsService.kt index eed1e53f279a..4e8dc37704db 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/SettingsService.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/SettingsService.kt @@ -56,7 +56,9 @@ interface SettingsService { val jbAccount: IPropertyView - val isSyncEnabled: IPropertyView + val isSyncEnabled: Boolean + + val hasDataToSync: IPropertyView val doClose: ISignal @@ -155,7 +157,10 @@ class SettingsServiceImpl(private val coroutineScope: CoroutineScope) : Settings } // override val isSyncEnabled = jbAccount.compose(unloggedSyncHide()) { account, reg -> !reg || account != null } - override val isSyncEnabled = jbAccount.compose(getSyncService().syncState) { account, state -> account != null && state == SyncService.SYNC_STATE.LOGGED } + override val hasDataToSync = Property(false) + //override val hasDataToSync = jbAccount.compose(getSyncService().syncState) { account, state -> account != null && state == SyncService.SYNC_STATE.LOGGED } + + override val isSyncEnabled = System.getProperty("import.settings.sync.enabled").toBoolean() init { if (useMockDataForStartupWizard) { diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/sync/SyncServiceImpl.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/sync/SyncServiceImpl.kt index e7fedf30b05b..8de1eb778291 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/sync/SyncServiceImpl.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/sync/SyncServiceImpl.kt @@ -47,10 +47,6 @@ internal class SyncServiceImpl(private val coroutineScope: CoroutineScope) : Syn override val syncState = Property(SyncService.SYNC_STATE.UNLOGGED) - init { - loadAmbientSyncState() - } - private val accountInfoService: JBAccountInfoService? get() = JBAccountInfoService.getInstance()