diff --git a/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt b/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt index b841c5128fe2..a96b49fa710e 100644 --- a/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt +++ b/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt @@ -61,14 +61,18 @@ suspend fun applyIslandsTheme(afterImportSettings: Boolean) { private suspend fun enableTheme(properties: PropertiesComponent) { val lafManager = serviceAsync() - val currentTheme = lafManager.currentUIThemeLookAndFeel?.id ?: return + if (currentTheme != "ExperimentalDark" && currentTheme != "ExperimentalLight" && currentTheme != "ExperimentalLightWithLightHeader") { + if (currentTheme == "Islands Light" || currentTheme == "Islands Dark") { + resetLafSettingsToDefault(lafManager, serviceAsync()) + } return } - val colorsManager = EditorColorsManager.getInstance() + val colorsManager = serviceAsync() val currentEditorTheme = colorsManager.globalScheme.displayName + if (currentEditorTheme != "Light" && currentEditorTheme != "Dark" && currentEditorTheme != "Rider Light" && currentEditorTheme != "Rider Dark") { return } @@ -80,7 +84,8 @@ private suspend fun enableTheme(properties: PropertiesComponent) { val isLight = JBColor.isBright() - val newTheme = UiThemeProviderListManager.getInstance().findThemeById(if (isLight) "Islands Light" else "Islands Dark") ?: return + val themeManager = serviceAsync() + val newTheme = themeManager.findThemeById(if (isLight) "Islands Light" else "Islands Dark") ?: return properties.setValue("ide.islands.show.feedback3", "done") @@ -95,16 +100,16 @@ private suspend fun enableTheme(properties: PropertiesComponent) { newTheme.installEditorScheme(colorsManager.getScheme(editorScheme) ?: colorsManager.defaultScheme) - resetLafSettingsToDefault(lafManager, properties) + resetLafSettingsToDefault(lafManager, themeManager) lafManager.updateUI() } private suspend fun changeColorSchemeForRiderIslandsDarkTheme(afterImportSettings: Boolean): Boolean { - val colorsManager = EditorColorsManager.getInstance() val lafManager = serviceAsync() val currentLaf = lafManager.currentUIThemeLookAndFeel ?: return false + val colorsManager = serviceAsync() val colorScheme = if (afterImportSettings) "Islands Dark" else "Rider Dark" if (currentLaf.id != "Islands Dark" || colorsManager.globalScheme.displayName != colorScheme) { @@ -118,15 +123,11 @@ private suspend fun changeColorSchemeForRiderIslandsDarkTheme(afterImportSetting return true } -private fun resetLafSettingsToDefault(lafManager: LafManager, properties: PropertiesComponent) { - properties.setValue("ide.islands.debug.resetValue", "start") - - val defaultLightLaf = lafManager.defaultLightLaf ?: return - val defaultDarkLaf = lafManager.defaultDarkLaf ?: return +private fun resetLafSettingsToDefault(lafManager: LafManager, themeManager: UiThemeProviderListManager) { + val defaultLightLaf = themeManager.findThemeById("Islands Light") ?: return + val defaultDarkLaf = themeManager.findThemeById("Islands Dark") ?: return lafManager.setPreferredLightLaf(defaultLightLaf) lafManager.setPreferredDarkLaf(defaultDarkLaf) lafManager.resetPreferredEditorColorScheme() - - properties.setValue("ide.islands.debug.resetValue", "finish: ${defaultLightLaf.id} | ${defaultDarkLaf.id}") } \ No newline at end of file