From 36505ee5903b9b10062b7d6348ebbe8614bca2bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomek=20=22jaen=22=20Ma=C5=84ko?= Date: Tue, 20 Aug 2024 19:05:22 +0200 Subject: [PATCH] [settings-sync] IJPL-13940 Ensure Settings Sync error gets propagated to the top-right gear menu GitOrigin-RevId: 788fddd63fa40950f53257bd77b422168b6707ff --- .../src/com/intellij/settingsSync/SettingsSyncBridge.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt index 6b5ae83e8a01..b61f20c23085 100644 --- a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt +++ b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt @@ -377,7 +377,7 @@ class SettingsSyncBridge( } private fun checkServer() { - when (remoteCommunicator.checkServerState()) { + when (val result = remoteCommunicator.checkServerState()) { is ServerState.UpdateNeeded -> { LOG.info("Updating from server") updateChecker.scheduleUpdateFromServer() @@ -389,9 +389,14 @@ class SettingsSyncBridge( } ServerState.UpToDate -> { LOG.debug("Updating settings is not needed") + // Clear the error state, if any + SettingsSyncStatusTracker.getInstance().updateOnSuccess() } is ServerState.Error -> { - // error already logged in checkServerState + // The error is already logged in `SettingsSyncRemoteCommunicator.checkServerState`, but we need to set + // an error state for the UI to display failed sync information in the top-right corner settings menu + SettingsSyncStatusTracker.getInstance().updateOnError( + SettingsSyncBundle.message("notification.title.push.error") + ": " + result.message) } } }