Skip to content

Commit ce620d7

Browse files
ADFA-4436 Use imports and early return in editor decoration code
- Replace fully-qualified EditorDecorationBridge / EditorDecorationProvider references with imports across the app and plugin-manager call sites. - Invert the registration guard in EditorDecorationBridge.init() to an early return, dropping a level of nesting while preserving behavior.
1 parent 3d60906 commit ce620d7

4 files changed

Lines changed: 27 additions & 22 deletions

File tree

‎app/src/main/java/com/itsaky/androidide/app/CredentialProtectedApplicationLoader.kt‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.itsaky.androidide.preferences.internal.GeneralPreferences
1818
import com.itsaky.androidide.resources.localization.LocaleProvider
1919
import com.itsaky.androidide.ui.themes.IDETheme
2020
import com.itsaky.androidide.ui.themes.IThemeManager
21+
import com.itsaky.androidide.utils.EditorDecorationBridge
2122
import com.itsaky.androidide.utils.Environment
2223
import com.itsaky.androidide.utils.FeatureFlags
2324
import com.itsaky.androidide.utils.FileUtil
@@ -329,7 +330,7 @@ internal object CredentialProtectedApplicationLoader : ApplicationLoader {
329330
GlobalScope.launch {
330331
try {
331332
pluginManager?.loadPlugins()
332-
com.itsaky.androidide.utils.EditorDecorationBridge.init()
333+
EditorDecorationBridge.init()
333334
logger.info("Plugin system initialized successfully")
334335
} catch (e: Exception) {
335336
logger.error("Failed to load plugins", e)
@@ -381,7 +382,7 @@ internal object CredentialProtectedApplicationLoader : ApplicationLoader {
381382
}
382383
} else if (event.key == GeneralPreferences.UI_MODE && GeneralPreferences.uiMode != AppCompatDelegate.getDefaultNightMode()) {
383384
AppCompatDelegate.setDefaultNightMode(GeneralPreferences.uiMode)
384-
com.itsaky.androidide.utils.EditorDecorationBridge.refresh()
385+
EditorDecorationBridge.refresh()
385386
} else if (event.key == GeneralPreferences.SELECTED_LOCALE) {
386387
// Use empty locale list if the locale has been reset to 'System Default'
387388
val selectedLocale = GeneralPreferences.selectedLocale

‎app/src/main/java/com/itsaky/androidide/utils/EditorDecorationBridge.kt‎

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,27 @@ object EditorDecorationBridge {
5656
*/
5757
@JvmStatic
5858
fun init() {
59-
if (!registered) {
60-
registered = true
61-
try {
62-
val app = BaseApplication.baseInstance
63-
lastNightMode = app.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
64-
app.registerComponentCallbacks(object : ComponentCallbacks {
65-
override fun onConfigurationChanged(newConfig: Configuration) {
66-
val night = newConfig.uiMode and Configuration.UI_MODE_NIGHT_MASK
67-
if (night != lastNightMode) {
68-
lastNightMode = night
69-
refresh()
70-
}
59+
if (registered) {
60+
refresh()
61+
return
62+
}
63+
registered = true
64+
try {
65+
val app = BaseApplication.baseInstance
66+
lastNightMode = app.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
67+
app.registerComponentCallbacks(object : ComponentCallbacks {
68+
override fun onConfigurationChanged(newConfig: Configuration) {
69+
val night = newConfig.uiMode and Configuration.UI_MODE_NIGHT_MASK
70+
if (night != lastNightMode) {
71+
lastNightMode = night
72+
refresh()
7173
}
74+
}
7275

73-
override fun onLowMemory() {}
74-
})
75-
} catch (t: Throwable) {
76-
log.error("Failed to register editor decoration theme listener", t)
77-
}
76+
override fun onLowMemory() {}
77+
})
78+
} catch (t: Throwable) {
79+
log.error("Failed to register editor decoration theme listener", t)
7880
}
7981
refresh()
8082
}

‎app/src/main/java/com/itsaky/androidide/viewmodels/PluginManagerViewModel.kt‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.itsaky.androidide.ui.models.PluginManagerUiEffect
1313
import com.itsaky.androidide.ui.models.PluginManagerUiEvent
1414
import com.itsaky.androidide.ui.models.PluginManagerUiState
1515
import com.itsaky.androidide.ui.models.PluginOperation
16+
import com.itsaky.androidide.utils.EditorDecorationBridge
1617
import com.itsaky.androidide.utils.UriFileImporter
1718
import kotlinx.coroutines.Dispatchers
1819
import kotlinx.coroutines.channels.Channel
@@ -123,7 +124,7 @@ class PluginManagerViewModel(
123124
}
124125

125126
// Keep the editor decoration providers in sync with the enabled plugin set.
126-
com.itsaky.androidide.utils.EditorDecorationBridge.refresh()
127+
EditorDecorationBridge.refresh()
127128

128129
_currentOperation.value = PluginOperation.None
129130
}

‎plugin-manager/src/main/kotlin/com/itsaky/androidide/plugins/manager/core/PluginManager.kt‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.itsaky.androidide.plugins.manager.services.CogoProjectProvider
1717
import com.itsaky.androidide.plugins.manager.services.IdeTooltipServiceImpl
1818
import com.itsaky.androidide.plugins.manager.services.IdeEditorTabServiceImpl
1919
import com.itsaky.androidide.plugins.extensions.DocumentationExtension
20+
import com.itsaky.androidide.plugins.extensions.EditorDecorationProvider
2021
import com.itsaky.androidide.plugins.extensions.FileOpenExtension
2122
import com.itsaky.androidide.plugins.extensions.SnippetExtension
2223
import com.itsaky.androidide.plugins.manager.services.IdeSnippetServiceImpl
@@ -797,11 +798,11 @@ class PluginManager private constructor(
797798
/**
798799
* Get all enabled plugins that provide editor decorations (additive coloring of editor text).
799800
*/
800-
fun getEnabledEditorDecorationProviders(): List<com.itsaky.androidide.plugins.extensions.EditorDecorationProvider> {
801+
fun getEnabledEditorDecorationProviders(): List<EditorDecorationProvider> {
801802
return loadedPlugins.values
802803
.filter { it.isEnabled }
803804
.map { it.plugin }
804-
.filterIsInstance<com.itsaky.androidide.plugins.extensions.EditorDecorationProvider>()
805+
.filterIsInstance<EditorDecorationProvider>()
805806
}
806807

807808
fun notifyFileOpened(file: File) {

0 commit comments

Comments
 (0)